先对待排序列表进行拆分,分成两个子列表,一般从 n/2 索引的位置进行拆分。例子中有12个元素,两个子列表都有6个元素。
2. 进行合并的前提是两个子列表都是有序的。...:
[5, 7, 10, 15, 17, 21, 24, 27, 30, 36, 45, 50]
在代码中,先实现了将两个有序列表进行合并的 merge(left_array, right_array)...在该函数中,传入的两个列表(左表和右表)都是排好序的(升序或降序,上面代码中是升序)。...四、归并排序的时间复杂度和稳定性
1. 时间复杂度
在归并排序中,不管待排序列表的初始状态如何,都不影响排序的时间复杂度。...归并排序一直对待排序列表进行拆分,需要进行logn次拆分,在每一次递归合并中,需要进行n次比较和添加。