当前位置:文档之家› 关于各种排序方法的比较

关于各种排序方法的比较

各种排序方法的总结
一.直接插入排序
1.时间复杂度
移动次数和比较次数受初始排列的影响。

最好情况o(n) 最坏情况o(n2) 平均情况o(n2)
2.空间复杂度:o(1)
3.算法特点
稳定排序;
算法简便,且容易实现
适用于顺序和链式两种存储结构,链式存储时不需要移动记录,只修改指针;
适合于初始记录基本有序的情况;
当记录无序,且n较大时,不宜采用。

二.折半插入排序
1.时间复杂度
移动次数受初始排列的影响。

最好情况o(nlog2n) 最坏情况o(n2) 平均情况o(n2)
2.空间复杂度
o(1)
3.算法特点
稳定排序;
算法简便,且容易实现
只适用于顺序存储结构,不能用于链式存储结构;
适合记录无序、n较大的情况;
三.希尔排序
1.时间复杂度
2.空间复杂度
o(1)
3.算法特点
不稳定排序,记录跳跃式的移动;
只适用于顺序存储结构,不能用于链式存储结构;
增量序列可以有多种取法,最后一个增量值必须是1;
适合记录无序、n较大的情况;
四.冒泡排序
1.时间复杂度
移动次数和比较次数受初始排列的影响。

最好情况o(n) 最坏情况o(n2) 平均情况o(n2)
2.空间复杂度
o(1)
3.算法特点
稳定排序;
适用于顺序存储结构和链式存储结构;
适合记录无序、n较大时不宜采用;
五.快速排序
1.时间复杂度
移动次数和比较次数受初始排列的影响。

最好情况o(nlog2n) 最坏情况o(n2) 平均情况o(nlog2n)
2.空间复杂度:o(log2n) 递归算法
3.算法特点
不稳定排序;
算法简便,且容易实现
适用于顺序存储结构;
适合记录无序,且n较大情况。

六.直接选择排序
1.时间复杂度
比较次数不受初始排列的影响,移动次数受影响。

最好情况o(n2) 最坏情况o(n2) 平均情况o(n2)
2.空间复杂度
o(1)
3.算法特点
不稳定排序;
适用于顺序存储结构和链式存储结构;
移动记录的次数较多,适合记录占用空间较多时,采用此方法;
七.堆排序
1.时间复杂度
移动次数和比较次数受初始排列的影响。

最好情况o(nlog2n) 最坏情况o(nlog2n) 平均情况o(nlog2n)
2.空间复杂度:o(1)
3.算法特点
不稳定排序;
适用于顺序存储结构;
n较小时不宜采用。

八.归并排序
1.时间复杂度
移动次数和比较次数受初始排列的影响。

最好情况o(nlog2n) 最坏情况o(nlog2n) 平均情况o(nlog2n)
2.空间复杂度:o(n)
3.算法特点
稳定排序;
适用于顺序和链式两种存储结构;
九.基数排序
1.时间复杂度
唯一一个不通过比较和移动记录实现排序的方法。

最好情况o(d(n+REDIX)) 最坏情况o(d(n+REDIX)) 平均情况o(d(n+REDIX))
其中,d表示关键字的位数;n表示关键字的个数;REDIX表示基,即位上关键字的取值范围4.空间复杂度:o(n+REDIX)
5.算法特点
稳定排序;
适用于顺序和链式两种存储结构;
使用条件较多,需要知道各级关键字的主次关系和各级关系字的取值范围。

相关主题