天天看点

归并排序

归并:将两个或两个以上的有序表组合成一个新的有序表

初始序列看成n个有序子序列,每个子序列长度为1

两两合并,得到n/2个长度为2或1的有序子序列

再两两合并,重复直至得到一个长度为n的有序序列为止

归并排序

1.为避免顺序存储时大量移动记录的开销,可以考虑用链式作为存储结构

直接插入排序、归并排序

2.不宜采用链式作为存储结构的

折半插入排序、希尔排序、快速排序、堆排序

n较大时

(1)分布随机,稳定性不做要求,则采用快速排序

(2)内存允许,要求排序稳定时,则采用归并排序

(3)可能会出现正序或逆序,稳定性不做要求,则采用堆排序或归并排序

n较小时

(1)基本有序,要求稳定,则采用直接插入排序

(2)分布随机,稳定性不做要求,则采用直接选择排序,若排序码不接近逆序,也可以采用直接插入排序。

继续阅读