概述
归并排序就是把待排序的分为左右两份,而左右两份分别再分成左右两份,如此递归下去,直到每一份只有一个元素(只有一个元素,那么这一份肯定是有序的)。再结合合并方法(将两个有序的列表合并成一个有序的列表),最终完成排序。
递归分区示意图如下:
合并示意图如下:
在此感谢CoderJed
在简书上的图示分享,引用地址
https://www.jianshu.com/p/33cffa1ce613
python示例代码
看完这个代码,相信理解会更深,代码的注释也能让你更好理解
# 归并排序(将两个有序的列表合并成一个有序的列表方法+递归方法)
import random
def merge_sort(items, comp=lambda x, y: x <= y): # 把lambda函数直接放在函数参数里
"""归并排序(分治法)"""