python归并排序输出过程代码
时间: 2024-11-03 19:13:20 浏览: 25
归并排序是一种稳定的分治算法,它通过将数组不断地分成两半,对每半进行排序,然后合并两个已排序的部分来达到整个序列有序的目的。以下是Python中归并排序的基本输出过程代码:
```python
def merge_sort(arr):
# 分治策略的基础条件:如果数组只有一个元素,它是已经排序的
if len(arr) <= 1:
return arr
# 将数组一分为二
mid = len(arr) // 2
left_half = arr[:mid]
right_half = arr[mid:]
# 对左右两部分递归地进行归并排序
left_sorted = merge_sort(left_half)
right_sorted = merge_sort(right_half)
# 合并排序后的左半部分和右半部分
merged = merge(left_sorted, right_sorted)
return merged
def merge(left, right):
result = []
i = j = 0
# 比较并合并两个数组,较小的元素先添加到结果中
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
# 如果还有剩余的元素,直接添加到结果中
result.extend(left[i:])
result.extend(right[j:])
return result
# 示例:输入一个列表,打印排序过程
arr = [9, 7, 5, 11, 12, 2, 14, 3, 10]
print("Original array:", arr)
sorted_arr = merge_sort(arr)
print("Sorted array:", sorted_arr)
```
在这个例子中,输出会逐步显示归并排序的过程,从原始数组开始,经过分割、递归排序,最终合并成一个有序数组。
阅读全文