题解 | #合并两个有序的数组#

合并两个有序的数组

http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

和归并算法的merge函数一个原理

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int[] help = new int[m+n];    //建立额外数组help,排好序后赋值给A
        int i = 0, j = 0, k = 0;
        //第一个while,将较小数优先加入help
        while (i<m && j<n) {
            if (A[i] < B[j]) {
                help[k] = A[i];
                i++;
                k++;
            }
            else {
                help[k] = B[j];
                j++;
                k++;
            }
        }
        //后面2个循环,确保A、B全部输入help
        while (i<m) {
            help[k] = A[i];
            i++;
            k++;
        }
        while (j<n) {
            help[k] = B[j];
            j++;
            k++;
        }
        //help数据回送A
        for (int x = 0; x<m+n; x++) {
            A[x] = help[x];
        }
    }
}
全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务