python 合并排序算法
时间: 2023-09-02 15:14:13 浏览: 96
Python合并排序算法是一种基于分治思想的排序算法,它将待排序数组分成两个子数组,然后递归地对两个子数组进行排序,最后将两个有序子数组合并成一个有序数组。具体实现过程可以参考如下代码:
```
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
merge_sort(left)
merge_sort(right)
i = j = k = 0
while i < len(left) and j < len(right):
if left[i] < right[j]:
arr[k] = left[i]
i += 1
else:
arr[k] = right[j]
j += 1
k += 1
while i < len(left):
arr[k] = left[i]
i += 1
k += 1
while j < len(right):
arr[k] = right[j]
j += 1
k += 1
```
在这段代码中,merge_sort() 函数接收一个待排序的数组 arr,如果数组的长度大于 1,则将数组分成两个子数组:左子数组 left 和右子数组 right。然后递归地对两个子数组进行排序,直到子数组的长度为 1。接着将左右子数组合并成一个有序的数组,最终返回排好序的数组 arr。
阅读全文