基数排序算是桶排序和计数排序的衍生吧,因为基数排序里面会用到这两种其中一种。 基数排序针对的待排序元素是要有高低位之分的,比如单词adobe,activiti,activiti就高于adobe,这个是根据ascll码来的。 现在我们可以提出一个问题,怎样对字典里面的单词进行排序呢? 比如我们现在有如 ...
分类:
编程语言 时间:
2019-01-30 23:14:16
阅读次数:
227
冒泡排序(交换排序):大的数右移交换,优化成鸡尾酒排序;演变成快速排序插入排序:从第二个元素往左比较,插入到小于他的数后面希尔排序选择排序:选择最小的放在最左侧,以此类推归并排序:基于分治算法快速排序(交换排序):基于分治算法堆排序和优先级队列,基于二叉堆计数排序:小范围内的整数超级快速桶排序基数排序-桶排序的扩展两种交换排序算法1.冒泡排序->优化成鸡尾酒排序2.快速排序两种基于分治算法的
分类:
编程语言 时间:
2019-01-16 16:36:27
阅读次数:
155
给定一个由小写字母构成的圆环形的字符串(即首字母和末字母是相连的)。 让你找到一个位置将这个圆环形的串断开成为一个序列形的串,使得这个字符串字典序最小。如果有多个,输出位置最靠前的那一个。 ...
分类:
其他好文 时间:
2019-01-10 20:53:16
阅读次数:
209
Java实现的12种排序 2019-01-05 一.冒泡排序及其实现 二.希尔排序及其实现 三.插入排序及其实现 四.插入排序及其实现 五.快速排序及其实现 六.合并排序及其实现 七.计数排序及其实现 八.基数排序及其实现 九. 桶排序及其实现 十. 堆排序及其实现 十一.二叉树排序及有序集合 十二 ...
分类:
编程语言 时间:
2019-01-06 00:03:00
阅读次数:
213
计数排序引入 不难发现不论是冒泡排序还是插入排序,其排序方法都是通过对每一个数进行两两比较进行排序的,这种方法称为比较排序,实际上对每个数的两两比较严重影响了其效率,理论上比较排序时间复杂度的最低下限为nlog(n),即任何比较排序的时间复杂度将不会低于nlog(n),那么有没有方法能不经过数列比较 ...
分类:
编程语言 时间:
2018-12-30 16:25:42
阅读次数:
241
常用排序算法 目录 一、冒泡排序 二、选择排序 三、插入排序 四、快速排序 五、堆排序 六、归并排序 七、基数排序 八、希尔排序 九、桶排序 十、总结 一、冒泡排序 1、思路:首先,列表每两个相邻的数比较大小,如果前边的比后边的大,那么这两个数就互换位置。就像是冒泡一样 2、代码关键点: 趟数:n- ...
分类:
编程语言 时间:
2018-12-27 03:17:25
阅读次数:
241
计数排序 计数排序的实现主要是数据样本的特殊性(正整数,明确最大边界)和利用列表索引位置来记录值,索引值来统计个数 最后循环索引,根据值(个数)确定添加多少个 桶排序 桶排序实现思路和计数排序实现思路大体相同,计数排序是通过列表索引来把相同的数弄到一组,而桶排序则是确定一个范围来确定分组 代码实现思 ...
分类:
编程语言 时间:
2018-12-19 00:29:11
阅读次数:
216
无序数组的两两元素之差绝对值的最小值有两种方法: 1.类似桶排序的方案,O(n)的时间: 先扫描一遍数组元素,求出最大值max和最小值min,将数组元素划分到n个区间,每个区间的长度为:(max-min)/n,第一个区间为:[min,min+(max-min)/n),左闭右开区间, 扫描n个区间,所 ...
分类:
编程语言 时间:
2018-12-05 20:41:51
阅读次数:
379
一、常见的十种排序算法: 冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、桶排序、基数排序 1.【知识框架】 补充:内部排序:整个排序过程完全在内存中进行。 外部排序:由于待排序记录数据量太大,内存无法容纳全部数据,需要借助外部存储。 外部排序:由于待排序记录数据量太大 ...
分类:
编程语言 时间:
2018-11-29 01:28:45
阅读次数:
222
1、桶式排序: 有n个数的数组,可以建立一个m大小的桶序列count数组,遍历n个数字的数组,每次进行cout[a[i]]++,然后遍历count,如果统计过 就输出。时间复杂度为O(n+m)。 2、基数排序: 与桶排序的思想类似,如果桶排序的n很大,再建立一个m容量的数组就不合适了。 所以可以用多 ...
分类:
编程语言 时间:
2018-11-25 22:25:39
阅读次数:
273