4. 归并排序(Merge Sort)
4.1. 核心思想
“分而治之:将数组递归拆分为最小单元,再有序合并”
4.2. 关键概念
- 递归分治:将数组不断二分直到单个元素
- 稳定排序:合并时相等元素保持原顺序
- 空间换时间:需要O(n)额外空间
4.3. 算法步骤
- 递归将数组对半拆分
- 当子数组长度为1时停止拆分
- 合并两个已排序的子数组
- 重复合并直到完整有序
4.4. Python实现
4.4.1. 递归方法
def merge_sort_recurive(arr):
if len(arr) > 1:
mid = len(arr) // 2
L = arr[:mid]
R = arr[mid:]
merge_sort_recurive(L)
merge_sort_recurive(R)
i = j = k = 0
while i < len(L) and j < len(R):
if L[i] < R[j]:
arr[k] = L[i]
i += 1
else:
arr[k] = R[j]
j += 1
k += 1
while i < len(L):
arr[k] = L[i]
i += 1
k += 1
while j < len(R):
arr[k] = R[j

最低0.47元/天 解锁文章
1160

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



