稳定性:
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,
冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
复杂度
冒泡法: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。不说了。
直接插入排序:O(n*n)
希尔排序:算法的复杂度为n的1.2次幂
选择排序:O(n*n)
快速排序:不稳定,平均时间复杂度O(nlog...
分类:
编程语言 时间:
2015-01-10 01:09:47
阅读次数:
222
基数排序:时间O(d(n+rd)) d:关键字个数,n:元素数,rd:关键字的取值范围
空间O(rd)
注:对于数值类排序,只能从低位到高位进行基数排序,能有序,(高到低,不行)
void RadixSort(int *&p,int r,int d)//p为带排序的单链表指针,r为基数,d为关键字位数
{
int *head[MAXR],*tail[MAXR],*t;
in...
分类:
编程语言 时间:
2015-01-06 18:05:39
阅读次数:
143
1、基数排序数据:5 45 81 27 61 91 93 42 28 36step1:建0~9 的空队列step2:按个位数放入 取出取出后:81 61 91 42 93 5 45 36 27 28step3:按十位数放入 取出取出后:5 27 28 36 45 61 81 91 93排序完毕2、堆...
分类:
编程语言 时间:
2014-12-28 01:46:00
阅读次数:
208
不是自己亲自去做,永远都不会知道这其中的难处~...
分类:
编程语言 时间:
2014-12-22 14:29:52
阅读次数:
159
这里是地址 http://de.visualgo.net/7VisuAlgo开始训练!这是中文的网站http://visualgo.net.请参阅本文更多详情..VisuAlgo.net数据结构和算法动态可视化 (Chinese)排序冒泡选择插入归并快速随机快速选择插入计数基数排序cs2020cs1...
分类:
编程语言 时间:
2014-12-18 11:50:35
阅读次数:
472
实现基数排序的方式有多种,但思维是一样的,可以用数组来模拟桶的操作。还是那句话,不是自己亲自敲出来,永远都不知道它的难度。...
分类:
编程语言 时间:
2014-12-17 18:36:51
阅读次数:
209
经典排序算法 - 基数排序Radix sort
原理类似桶排序,这里总是需要10个桶,多次使用
首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数
例如
待排序数组[62,14,59,88,16]简单点五个数字
分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样
| 0 | 0 | 62 | 0 | 14 | 0 ...
分类:
编程语言 时间:
2014-12-16 13:35:28
阅读次数:
187
经典排序算法 - 计数排序Counting sort
注意与基数排序区分,这是两个不同的排序
计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长
大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶
看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组
var unsorted = new int[] { 6, 2, ...
分类:
编程语言 时间:
2014-12-16 13:34:36
阅读次数:
165
经典排序算法 - Proxmap Sort
这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解
先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶
这个排序把数字分区了,然后给出一个所谓的键,例如它规定0-9都入0号桶
10-19都入1号桶,这样桶覆盖的范围将增大10倍,这在某种情况下是很有用的
有了桶排的基础后,再看下边两张图就什么都明...
分类:
编程语言 时间:
2014-12-16 13:32:39
阅读次数:
157