合并排序数组

Posted leduo-zuul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并排序数组相关的知识,希望对你有一定的参考价值。

代码如下:

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 

以上是关于合并排序数组的主要内容,如果未能解决你的问题,请参考以下文章

合并长度不等的排序数组

合并排序数组(简单)

二路归并排序(也叫合并排序)

使用没有第三个数组的递归合并两个排序数组

合并排序数组

LintCode之合并排序数组