使用python代码举例说明归并排序
时间: 2023-01-31 16:33:12 浏览: 102
归并排序有实例
归并排序是一种分治算法,它将一个数组(或列表)递归地分成两半,然后将它们排序并合并起来。
下面是一个使用 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)
# 合并两个有序的数组
return merge(left_half, right_half)
def merge(left, right):
# 初始化辅助数组和结果数组
aux = []
result = []
# 将两个数组合并到辅助数组中
while left and right:
if left[0] < right[0]:
aux.append(left.pop(0))
else:
aux.append(right.pop(0))
# 如果还有剩余,将剩余元素添加到辅助数组中
aux.extend(left)
aux.extend(right)
# 将辅助数组的所有元素添加到结果数组中
result.extend(aux)
return result
# 测试代码
print(merge_sort([3, 5, 2, 1, 4])) # 输出 [1, 2, 3, 4, 5]
```
在这段代码中,我们首先定义了一个 `merge_sort` 函数,它接收一个数组作为参数,并将其递归地分成两半。然后,我们对
阅读全文