归并排序和几种内部排序的比较

归并排序

归并排序(Merging Sort) 归并的含义是将两个或两个以上的有序表组合成一个新的有序表。
基本思想:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到【n/2】个长度为2或1的有序子序列;再两两归并,…,如此重复,直至得到一个长度为n的有序序列为止,这种排序叫2-路归并排序。

归并排序和几种内部排序的比较_第1张图片

说明:归并排序的时间复杂度为O(nlogn),它是一种稳定的排序方法。


各种内部排序方法的比较

排序方法 平均时间 最坏时间 辅助存储
简单排序 O(n²) O(n²) O(1)
快速排序 O(n㏒n) O(n²) O(㏒n)
堆排序 O(n㏒n) O(n㏒n) O(1)
归并排序 O(n㏒n) O(n㏒n) O(n)
基数排序 O(d(n+rd)) O(d(n+rd)) O(rd)

1. 从平均时间性能而言,快速排序最佳,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。在n较大时,归并排序所需时间较堆排序省,但它所需的辅助存储量最多。
2. 基数排序最适用于n值很大而关键字较小的序列。
3. 从方法稳定性来比较,基数排序是稳定的内排方法,所有时间复杂度为 O(n²)的简单排序法也是稳定的,然而,快速排序、堆排序和希尔排序等时间性能较好的排序方法都是不稳定的。没有哪一种是绝对最优的。

你可能感兴趣的:(排序算法)