归并排序的分析
归并排序本质上用的就是分治法。分治:分而治理
1、先对需要排序的数据进行分组,一般是等分,即➗2进行分成为子数组。
2、分完每一组以后,看子组是否可以继续分,如果可以的话重复1的步骤继续对子数组进行划分,直到分的组只有一个数据的时候就不划分了。
3、将分到不能再分的组,进行有序的整合。每整合一个子组的顺序以后就返回给上一个父祖,然后一层层返回(本质上其实就是递归)
部分代码解析— 分
1、确定要分的组,即其的范围是多少,数组需要排序的范围
/*
对数组a中的元素进行排序
*/
public static void sort(Integer[] a){
//初始化
assist =new Integer[a.length];
int lo=0;
int hi=a.length-1;
sort(a,lo,hi);
}
2、然后将需要进行排序的组进行一个分组,注意:是要➗2进行等分,即取中间值确定需要排序的范围。分好左右以后,就需要进行归并即整合治理,将每一组不停的迭代往上,进行排序好
/*
对数组a中从lo到hi的元素进行排序
*/
private static void sort