形式陈述
归并排序把长度
标准数组实现需要
直觉
把难以整体排序的问题拆成两个有序列表后,合并只需比较各自尚未取出的最小元素,因此每个元素每层只被处理常数次。
例子与边界
排序 [4,1,3,2],先得 [1,4] 与 [2,3],再线性合并为 [1,2,3,4]。自然归并排序可利用输入中已有的有序段。归并排序不必原地;声称标准数组版本只需
推论与应用
归并排序适合链表、外部存储和稳定排序,也构成外部多路归并与并行排序的基础。它还是分治递推分析的标准例子。
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Ch. 2, merge sort and recurrence analysis。
- Donald E. Knuth, The Art of Computer Programming, Vol. 3: Sorting and Searching, 2nd ed., Addison-Wesley, 1998,Vol. 3, §5.2.4, sorting by merging。