This commit is contained in:
krahets
2023-05-22 22:01:18 +08:00
parent 29807a3761
commit be77ba7a70
16 changed files with 60 additions and 58 deletions
+8 -8
View File
@@ -151,16 +151,16 @@ comments: true
# 左子数组区间 [left, mid]
# 右子数组区间 [mid + 1, right]
# 初始化辅助数组
tmp: list[int] = list(nums[left : right + 1])
tmp = list(nums[left : right + 1])
# 左子数组的起始索引和结束索引
left_start: int = 0
left_end: int = mid - left
left_start = 0
left_end = mid - left
# 右子数组的起始索引和结束索引
right_start: int = mid + 1 - left
right_end: int = right - left
right_start = mid + 1 - left
right_end = right - left
# i, j 分别指向左子数组、右子数组的首元素
i: int = left_start
j: int = right_start
i = left_start
j = right_start
# 通过覆盖原数组 nums 来合并左子数组和右子数组
for k in range(left, right + 1):
# 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
@@ -182,7 +182,7 @@ comments: true
if left >= right:
return # 当子数组长度为 1 时终止递归
# 划分阶段
mid: int = (left + right) // 2 # 计算中点
mid = (left + right) // 2 # 计算中点
merge_sort(nums, left, mid) # 递归左子数组
merge_sort(nums, mid + 1, right) # 递归右子数组
# 合并阶段