Merge sort 是一个分治、稳定排序算法,运行时间保证为 O(n log n)。它将数组分成两半,递归地对每一半进行排序,然后合并两个已排序的一半。
核心思想
单个元素已经排序(基本情况)。合并两个有序列表是线性的,而我们执行 log n 层的合并。
示例
python
():
(arr) <= :
arr
mid = (arr) //
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
merge(left, right)
():
result, i, j = [], ,
i < (a) j < (b):
a[i] <= b[j]:
result.append(a[i]); i +=
:
result.append(b[j]); j +=
result.extend(a[i:]); result.extend(b[j:])
result
merge_sort([, , , , ])
