关于各种排序方法的比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各种排序方法的总结
一.直接插入排序
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.算法特点
稳定排序;
适用于顺序和链式两种存储结构;
使用条件较多,需要知道各级关键字的主次关系和各级关系字的取值范围。