java 归并排序

    public void mergeSort(int[] arry, int low ,int high){
        if (low < high){
            int middle = ( low +high)/2 ;
            mergeSort(arry,low,middle);
            mergeSort(arry,middle+1,high);
            sort(arry,low,middle,high);
        }
    }
public void sort(int[] arry ,int low ,int middle ,int high){ int[] temp = new int[high - low + 1] ; int i = low ; int j = middle +1 ; int index=0; ; while (i <= middle && j <= high){ if(arry[i] < arry[j]){ temp[index++] =arry[i++] ; }else{ temp[index++] =arry[j++] ; } } while (i <= middle) { temp[index++] =arry[i++] ; } while (j <= high){ temp[index++] =arry[j++] ; } for (int m= 0;m < temp.length; m++) { arry[low + m] = temp[m]; } }

 

posted @ 2018-10-03 15:08  沙漠里的小鱼  阅读(77)  评论(0编辑  收藏  举报