Python归并排序
时间: 2023-11-13 09:52:45 浏览: 137
归并排序是一种基于归并操作的高效排序算法,它利用了分治法的思想。归并排序的时间复杂度为O(nlogn),其中n是待排序列表的长度。在归并排序中,待排序列表会被不断拆分,每次递归合并需要进行n次比较和添加操作。
下面是一个用Python实现归并排序的例子:
```python
def merge_sort(array):
if len(array) == 1:
return array
left_array = merge_sort(array[:len(array)//2])
right_array = merge_sort(array[len(array)//2:])
return merge(left_array, right_array)
def merge(left_array, right_array):
left_index, right_index, merge_array = 0, 0, []
while left_index < len(left_array) and right_index < len(right_array):
if left_array[left_index] <= right_array[right_index]:
merge_array.append(left_array[left_index])
left_index += 1
else:
merge_array.append(right_array[right_index])
right_index += 1
merge_array += left_array[left_index:]
merge_array += right_array[right_index:]
return merge_array
if __name__ == '__main__':
array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]
print(merge_sort(array))
```
阅读全文
相关推荐















