选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对{\displaystyle n}个元素的表进行排序总共进行至多{\displaystyle (n-1)}次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
实现示例c语言1234567891011121314151617181920212223242526272829303132void selection_sort(int a[], int len) { int i,j,temp; for (i = 0 ; i < len - 1 ; i++) { int min = i; for (j = i + 1 ...
鸽巢排序
鸽巢排序(Pigeonhole sort),也被称作基数分类,是一种时间复杂度为{\displaystyle O(n)}(大O符号)且在不可避免遍历每一个元素并且排序的情况下效率最好的一种排序算法。但它只有在差值(或者可被映射在差值)很小的范围内的数值排序的情况下实用。
当涉及到多个不相等的元素,且将这些元素放在同一个“鸽巢”的时候,算法的效率会有所降低。为了简便和保持鸽巢排序在适应不同的情况,比如两个在同一个存储桶中结束的元素必然相等。
我们一般很少使用鸽巢排序,因为它很少可以在灵活性、简便性、尤是速度上超过其他排序算法。事实上,桶排序较鸽巢排序更加的实用。
鸽巢排序的一个比较有名的变形是吻合排序法(tally sort),它仅仅适用非常有限的题目,这个算法因在Programming Pearls一书中作为解决一个非常规有限集问题方法的例子而著名。
显然,快速排序可以当作只有两个(有些情况下是三个)”鸽巢”的鸽巢排序。
算法对于N个不同元素的鸽巢排序算法(伪代码)123456789101112131415function pigeonhole_sort(array a[n]) ...
迷宫生成算法
迷宫生成算法是创建迷宫的自动化方法。
基于图论的方法基于图论的方法动画(随机深度优先搜索)迷宫可以通过从预定的细胞排列(最常见的是矩形网格,但也可以使用其他排列)开始生成,它们之间有壁位置。这种预定的排列可以被视为一个连接的图,边缘代表可能的壁站点,节点代表细胞。然后,迷宫生成算法的目的可以被认为是制作一个子图,其中很难找到两个特定节点之间的路线。
如果子图未连接,则图中的某些区域被浪费,因为它们对搜索空间没有贡献。如果图形包含循环,则所选节点之间可能有多个路径。因此,迷宫生成通常被视为生成随机生成树。循环可能会混淆朴素迷宫求解器,可以通过在算法过程中向结果添加随机边来引入。
动画显示了迷宫生成步骤 不在矩形网格上的图形。 首先,计算机创建一个随机平面图G 以蓝色显示,及其双F 以黄色显示。其次,计算机使用选定的 算法,例如深度优先搜索,将路径着色为红色。 在遍历过程中,每当红边越过蓝边时, 蓝色边缘被移除。 最后,当访问完 F 的所有顶点时,F 被擦除 并删除了 G 的两个边,一个用于入口,一个用于出口。
随机深度优先搜索该算法也称为“递归回溯”算法,是深度优先搜索算法的随机版本。
...
windows禁止安装软件
1.在电脑桌面面找到“此电脑”
2.右键弹出窗口中点击“管理”
3.此时在管理中点击“服务和应用程序”—->“服务”
4.然后在服务界面程序中找到“windows installer”项,右键弹出,选择“属性”功能
5.然后选择“启动类型”,将收手动设置为“禁用”
6.然后依次点击“应用”—>”确定”即可
mysql无则插入有则忽略
mysql如果找不到列值则插入,找到值时忽略。
sql语句
1INSERT into user_table(uid, name) select 'uid1', 'uname1' from dual WHERE NOT EXISTS (select name from user_table where name='uname1');
python 格式化代码
123"INSERT into user_table(uid, name) select '{}', '{}' from dual WHERE NOT EXISTS (select name from user_table where name='{}')".format( uid, name, name)
python监视ubuntu目录
python监视ubuntu目录EventHandler类的函数重载process_后面加上下面的内容,需要那个功能就重载那个函数。
事件类型
说明
IN_ACCES
文件被访问
IN_MODIFY|文件被修改IN_ATTRIB|文件属性被修改IN_CLOSE_WRITE|以可写方式打开的文件被关闭IN_CLOSE_NOWRITE|以不可写方式打开的文件被关闭IN_OPEN|文件被打开IN_MOVED_FROM|文件被移出监控的目录IN_MOVED_TO|文件被移入监控着的目录IN_CREATE|在监控的目录中新建文件或子目录IN_DELETE|文件或目录被删除IN_DELETE_SELF|自删除,即一个可执行文件在执行时删除自己IN_MOVE_SELF|自移动,即一个可执行文件在执行时移动自己
代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 ...
python连接mysql
python连接mysqlpython连接mysql的例子。
mysql不使用默认端口号时,修改db_port为mysql的端口。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import pymysqldb_port = 3306db_charset = 'utf8'db_name = 'testdb'db_host = '127.0.0.1'db_user_name = 'flame'db_user_pwd = 'flame999'cx = pymysql.connect(host=db_host, user=db_user_name, password=db_user_pwd, database=db_name, charset=db_charset, port=db_port)# execute sqldef execute_s ...
OceanWP主题评论名字前后有第页的解决办法
wordpress主题OceanWP评论名字前后有第页的解决办法OceanWP中文评论,发表者名字前后有第页的解决办法
修改方法找到主题所在目录,打开\wp-content\themes\oceanwp\inc\helpers.php
找到123<div class="comment-content"> <div class="comment-author"> <span class="comment-link"><?php printf( esc_html__( '%s ', 'oceanwp' ), sprintf( '%s', get_comment_author_link() ) ); ?></span>
修改esc_html__( '%s ', 'oceanwp' )为 esc_html__( '%s', 'ocean ...
mysql命令行操作数据库
创建用户1CREATE USER user1@127.0.0.1 IDENTIFIED WITH mysql_native_password BY '123456';
user1 用户名
127.0.0.1 允许的IP地址。 IPV6::1 远程 % 本地 localhost 、 127.0.0.1
mysql_native_password 加密方式。 旧的mysql_native_password,新的caching_sha2_password
修改密码1ALTER USER 'root'@'::1' IDENTIFIED WITH mysql_native_password BY '123456';
创建库1CREATE DATABASE tablename CHARACTER SET utf8 -- UTF-8 Unicode COLLATE utf8_general_ci ;
ubuntu安装mysql后报错Lost connection to MySQL server at ...
ubuntu20.4配置samba
说明参考https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
安装1sudo apt install -y samba smbclient
服务1systemctl enable smbd nmbd
加防火墙(没墙跳过)12firewall-cmd --permanent --add-service=sambafirewall-cmd --reload
安装工具1sudo apt -y install policycoreutils-python-utils
创建共享目录1mkdir /var/netdisk/
配置权限123groupadd netdiskchgrp netdisk /var/netdisk/chmod 2775 /var/netdisk/
检查一下默认的SELinux不开启SELinux时跳过带(SElinux)的配置。1ls -dZ /var/netdisk
将samba_share_t上下文类型应用于组共享(SElinux)1semanage fcontext -a -t ...