牛骨文教育服务平台(让学习变的简单)
博文笔记

两个有序数组合并为一个有序数组

创建时间:2017-07-18 投稿人: 浏览次数:325

把两个有序数组合并为一个有序数组,例如:

数组A:1,2,2,3,5,6,7,7
数组B:1,2,4,5,8,8,9,10,11,12,12,13,14

合并后应该为:
1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 11, 12, 12, 13, 14

以下是示例代码:

public void mergeArrays(){
    int[] a = {1,2,2,3,5,6,7,7};
    int[] b = {1,2,4,5,8,8,9,10,11,12,12,13,14};
    int[] result = new int[a.length + b.length];
    int i=0, j=0, k=0;
    while (i<a.length && j<b.length){
        if(a[i] <= b[j]){
            result[k++] = a[i++];
        }else{
            result[k++] = b[j++];
        }
    }
    while (i < a.length){
        result[k++] = a[i++];
    }
    while (j < b.length){
        result[k++] = b[j++];
    }
    System.out.println(Arrays.toString(result));
}

输出为:

[1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 11, 12, 12, 13, 14]

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。