归并排序思想
归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法: * 自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法); * 自下而上的迭代;
一、划分
- 当待排序数组 a[ ] 长度 a.length >= 3时,将数组 a [ ] 从 cennter = ( a.length + 1 ) / 2 划分为 left [ 0 ~ center-1 ] , right [ center ~ a.length - 1 ] 。
- 将划分后的数组 left [ ] 和 right [ ] 合并。
- 若数组a [ ] 长度a.length < 3,对该数组直接排序。
- 最后将处理后的数组返回。
![](https://img-blog.csdnimg.cn/ed576c8d39d74341a6a1affbe6f69402.png)
二、合并
- 初始化合并后的数组为 merge[ ] ,长度为 left.length + right.length 。变量 i ,j,k 初始为0
- 对上一步划分的数组自底向上合并到mer