python合并排序
时间: 2023-10-13 17:19:03 浏览: 48
你可以使用归并排序(Merge Sort)来合并排序两个有序的数组或列表。归并排序是一种分治算法,它将数组或列表不断分割为更小的子问题,然后再将子问题的解合并起来。
下面是一个使用归并排序算法合并排序两个有序列表的示例代码:
```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):
merged = []
i = j = 0
# 比较左右子数组的元素,并将较小值加入到合并后的列表中
while i < len(left) and j < len(right):
if left[i] < right[j]:
merged.append(left[i])
i += 1
else:
merged.append(right[j])
j += 1
# 将剩余的元素加入到合并后的列表中
merged.extend(left[i:])
merged.extend(right[j:])
return merged
# 示例用法
arr1 = [1, 3, 5, 7]
arr2 = [2, 4, 6, 8]
merged_arr = merge(arr1, arr2)
print(merged_arr)
```
以上代码中,`merge_sort` 函数用于对一个数组进行归并排序,而 `merge` 函数用于合并两个有序的子数组。你可以根据你的实际需求进行修改和扩展。