最低位优先法首先依据最低位关键码Kd对所有对象进行一趟排序, 再依据次低位关键码Kd-1对上一趟排序的结果再排序, 依次重复,直到依据关键码K1最后一趟排序完成,就可以得到一个有序的序列。 使用这种排序方法对每一个关键码进行排序时,不需要再分组,而是整个对象组。 from[http://www.cn ...
分类:
编程语言 时间:
2017-10-20 20:07:13
阅读次数:
140
最高位优先法通常是一个递归的过程: <1>先根据最高位关键码K1排序,得到若干对象组,对象组中每个对象都有相同关键码K1。 <2>再分别对每组中对象根据关键码K2进行排序,按K2值的不同,再分成若干个更小的子组,每个子组中的对象具有相同的K1和K2值。 <3>依此重复,直到对关键码Kd完成排序为止。 ...
分类:
编程语言 时间:
2017-10-20 20:00:28
阅读次数:
277
//中心思想,按照低位先排序,然后收集,再按照高位排序,然后再收集, //以此类推,直到最高位,是稳定算法,效率很高,复杂度是O(n㏒(r)m),r为采取的基数 //m为堆数,但是只能用在整数中,且需要一定的辅助空间 //下面是代码: #include using namespace std; //... ...
分类:
编程语言 时间:
2017-10-20 10:19:00
阅读次数:
243
不稳定的排序算法:选择排序、快速排序、希尔排序、堆排序 稳定的排序算法:冒泡排序、插入排序、归并排序、基数排序 一、时间复杂度 1、冒泡法: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)——这是最原始、最慢的排序算法 2、直接插入排序:O(n*n) 3、选择排序:O(n*n) ...
分类:
编程语言 时间:
2017-10-13 12:27:13
阅读次数:
145
排序算法常用的有: 当数据量不大时, 选择插入或者选择 排序, 不用冒泡排序; 其次,当数据量大而又注重空间复杂性时,, 选择 快速排序或 堆排序; 再次,当数据量大而又允许使用较多附加空间时, 选择桶排序, 最后,当要在已排序数据上增加若干新数据时, 选择插入排序. 摘自.C++数据结构原理与经典 ...
分类:
编程语言 时间:
2017-10-13 00:39:53
阅读次数:
186
今晚看了一篇阅读,跑了会步,闲来无事又看起了严奶奶的数据结构,发现基数排序很有意思,用一种多关键字的思想,在基数较少的情况下可以取得较好的效果。 书中的讲解通俗易懂(但是严奶奶的代码我是看不懂的),我一下子就看懂了。立即打开电脑开始练习。 学习链接:最快最简单的排序——桶排序(超萌的漫画,非常容易理 ...
分类:
编程语言 时间:
2017-10-11 23:53:44
阅读次数:
284
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定 ...
分类:
编程语言 时间:
2017-10-11 15:33:31
阅读次数:
155
调了一个下午只有八十分QAQ md弃了不管了 对拍也没拍出来 鬼知道是什么数据把我卡了QAQ 做法其实很简单 根据链剖的构造方法 你每次修改都是一段又一段的线段 那么你只要求一下线段并起来后哪些地方被覆盖了>=t次 不过要基数排序一波不然会T #include<cstdio> #include<cs ...
分类:
其他好文 时间:
2017-10-04 18:29:47
阅读次数:
117
为什么要写这样滴一篇博客捏...因为一个新初一问了一道水题,结果就莫名其妙引起了战斗。 然后突然发现之前理解的桶排序并不是真正的桶排序,所以写一篇来区别下这三个十分相似的排序辣。 老年菜兔的觉醒!!! 记数排序 记数排序是一种很快的排序算法,但是要很多的空间。 具体的操作: 比如说给一个这样的数列: ...
分类:
编程语言 时间:
2017-10-04 00:59:12
阅读次数:
326