python 合并排序 两个函数
时间: 2024-05-12 21:16:49 浏览: 83
Python对两个有序列表进行合并和排序的例子
该问题主要是针对Python中的合并排序算法,需要编写两个函数:一个用于拆分数组并进行归并排序,另一个用于将两个有序数组合并成一个有序数组。
下面是一个简单的Python代码示例:
```python
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
left = merge_sort(left)
right = merge_sort(right)
return merge(left, right)
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 += left[i:]
result += right[j:]
return result
```
其中,`merge_sort`函数用于拆分数组并进行归并排序,`merge`函数用于将两个有序数组合并成一个有序数组。
可以使用以下代码来测试合并排序函数:
```python
arr = [64, 34, 25, 12, 22, 11, 90]
print("原始数组:", arr)
result = merge_sort(arr)
print("排序后的数组:", result)
```
该代码将输出以下结果:
```
原始数组: [64, 34, 25, 12, 22, 11, 90]
排序后的数组: [11, 12, 22, 25, 34, 64, 90]
```
以上是Python中实现合并排序的方式,希望能对您有所帮助。
阅读全文