排序
归并排序
思想
- 将 n 个元素排序,若 n = 1,算法终止
- 否则,将这一个元素集合分割成两个,或更多个子集合
- 将每个子集合分别排序
- 将排序好的子集合归并为一个集合
子集的划分
- middle = (left + right) /2
- mergeSort(a,left,middle)
- mergeSort(a,middle+1,right)

- 消除递归,改善性能

两个区间归并的实现:

一趟归并的实现


归并排序是稳定排序
自然归并排序
- 首先将程序中的有序段挑出来,对已经有序的子序列进行归并

快速排序

快速排序不稳定

时间复杂度,最坏
O
(
n
2
)
O(n^2)
O(n2),最好
O
(
n
l
o
g
n
)
O(nlogn)
O(nlogn)
本文深入探讨了排序算法中的归并排序及其变种自然归并排序。归并排序通过分治策略,将数组分为两半,分别排序后再合并,确保稳定性。自然归并排序则优先合并已排序的子序列,提高效率。同时,文章提及快速排序,尽管效率高但不保证稳定性。
2071

被折叠的 条评论
为什么被折叠?



