合并排序数组

代码如下:

public class MergeSortedArray {

    public static void main(String[] args) {
        int[] arr = {9, 16, 40, 46, 48, 90};
        int[] arr2 = { 12, 22, 35, 76};
        int[] result = merge(arr, arr.length, arr2, arr2.length);
        print(result);
    }

    public static int[] merge(int[] A, int m, int[] B, int n) {
        int i=m-1, j=n-1, k=m+n-1;
        int[] C = new int[k+1];
        //比较两个数组最后的元素的大小,大的放到新数组最后一位(依次往前放)
        while (i > -1 && j > -1) {
            C[k--] = (A[i] > B[j]) ? A[i--] : B[j--];
        }
        while (i > -1) {
            C[k--] = A[i--];
        }
        while (j > -1) {
            C[k--] = B[j--];
        }
        return C;
    }
    //打印
    public static void print(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

 打印结果:9 12 16 22 35 40 46 48 76 90 

posted @ 2019-04-12 11:21  Zuul  阅读(137)  评论(0编辑  收藏  举报