二路归并输入输出完整代码
时间: 2024-09-14 07:05:42 浏览: 33
二路归并排序是一种分治算法,它将数组分为两个独立的部分,对每个部分递归地应用归并排序,然后合并这两个有序部分。以下是Python语言的一个二路归并排序的完整代码示例:
```python
def merge_sort(arr):
# 分治策略的基础情况:数组长度小于等于1,直接返回
if len(arr) <= 1:
return arr
# 将数组一分为二
mid = len(arr) // 2
left_half = arr[:mid]
right_half = arr[mid:]
# 对左右两半分别进行归并排序
left_half = merge_sort(left_half)
right_half = merge_sort(right_half)
# 合并两个已排序的部分
merged_arr = []
i = j = 0
while i < len(left_half) and j < len(right_half):
if left_half[i] <= right_half[j]:
merged_arr.append(left_half[i])
i += 1
else:
merged_arr.append(right_half[j])
j += 1
# 处理剩余未加入的结果
merged_arr.extend(left_half[i:])
merged_arr.extend(right_half[j:])
return merged_arr
# 示例使用
arr = [9, 7, 5, 11, 12, 2, 14, 3, 10, 6]
sorted_arr = merge_sort(arr)
print("Sorted array:", sorted_arr)
阅读全文