归并排序搁浅了....

今天刚刚倒出来时间想研究一下归并排序,结果看书之后搁浅了,难过。

    public static void merge(int a[], int lo, int mid, int hi) {
        int []aux = new int[100];
        int i = lo, j = mid + 1;
        for(int k = lo; k <= hi; k++) {
            aux[k] = a[k];
        }
        
        for(int k = lo; k <= hi; k++) {
            if(i > mid) a[k] = aux[j++];
            else if(j > hi) a[k] = aux[i++];
            else if(aux[j] < aux[i]) a[k] = aux[j++];
            else a[k] = aux[i++];
        }
        
    }

不是很明白,为什么在归并时要进行这四个判断,第一个判断,要把j的下一个给第一个???????

下面的也是很不理解了,菜鸟见解,会继续进行研究的。

posted on 2017-11-13 22:20  彩虹糖呐  阅读(117)  评论(2)    收藏  举报