This commit is contained in:
krahets
2023-04-09 05:12:22 +08:00
parent 01d05cc1f0
commit 37f11aff68
27 changed files with 265 additions and 248 deletions
+6 -6
View File
@@ -147,11 +147,11 @@ comments: true
```python title="merge_sort.py"
def merge(nums: list[int], left: int, mid: int, right: int) -> None:
""" 合并左子数组和右子数组 """
"""合并左子数组和右子数组"""
# 左子数组区间 [left, mid]
# 右子数组区间 [mid + 1, right]
# 初始化辅助数组
tmp: list[int] = list(nums[left:right + 1])
tmp: list[int] = list(nums[left : right + 1])
# 左子数组的起始索引和结束索引
left_start: int = 0
left_end: int = mid - left
@@ -177,13 +177,13 @@ comments: true
j += 1
def merge_sort(nums: list[int], left: int, right: int) -> None:
""" 归并排序 """
"""归并排序"""
# 终止条件
if left >= right:
return # 当子数组长度为 1 时终止递归
return # 当子数组长度为 1 时终止递归
# 划分阶段
mid: int = (left + right) // 2 # 计算中点
merge_sort(nums, left, mid) # 递归左子数组
mid: int = (left + right) // 2 # 计算中点
merge_sort(nums, left, mid) # 递归左子数组
merge_sort(nums, mid + 1, right) # 递归右子数组
# 合并阶段
merge(nums, left, mid, right)