归并算法简单介绍
归并算法的核心是:先拆分然后再合并。
拆分原则:先将序列折半进行拆分,当子序列只有一个元素时停止
合并原则:从下往上合并子序列,合并的同时使得子序列生成的父序列是有序的
代码详解:
1、首先要实现拆分:这个是通过mid中间值来实现,利用列表切片原理将原来的列表分成两部分
2、要实现拆分整个列表,因为拆分过程相同我们这里使用递归。递归的终止条件是只剩下一个元素,通过判断列表长度实现
3、下面开始分析合并的代码,合并的时候要使得合并后的序列保持有序。这里使用两个指针,处理的是两个子序列,最后处理完成后返回一个有序的父序列。用result接受合并过程中生成的父序列。两个指针分别指向左、右子序列的起始位置,判断两边值的大小插入到父序列中。指针对应元素插入到父序列后,指针移动继续比较。循环结束条件是子序列中元素全部插入完成,即指针移动到子序列的最后
并归排序 测试代码
网友评论