Java实现归并排序

import java.util.Arrays;
public class Code04 {
    public static void getMax(int[] arr)
    {
        process(arr,0,arr.length-1);
    }

    public static void process(int[] arr, int L ,int R)
    {
        if(L == R) {
            return;
        }
        int M = L + ((R - L)>>1);
        process(arr,L,M);
        process(arr,M+1,R);
        merge(arr,L,M,R);
    }

    public static void merge(int[] arr, int L, int M ,int R)
    {
        int[] help = new int[R-L+1];
        int i = 0;
        int p1 = L;
        int p2 = M+1;
        while(p1 <= M && p2 <= R)
        {
            help[i++] = arr[p1] <= arr[p2] ? arr[p1++] : arr[p2++];
        }
        while(p1 <= M)
        {
            help[i++] = arr[p1++];
        }
        while(p2 <= R)
        {
            help[i++] = arr[p2++];
        }
        for(i = 0; i < help.length; i++)
        {
            arr[L+i] = help[i];
        }
    }
    public static void main(String args[])
    {
          int nums[] = {1,3,2,5,4,9,4,8,0};
          getMax(nums);
          System.out.println(Arrays.toString(nums));
    }
}

上一篇:什么是时序


下一篇:Linux_plsql通过跳板的ssh隧道访问oracle1521(转)