Java编程:两个int类型有序数组A和B,长度分别为m和n,合并成有序数组C,并给出时间复杂度。

Java编程:两个int类型有序数组A和B,长度分别为m和n,合并成有序数组C,并给出时间复杂度。... Java编程:两个int类型有序数组A和B,长度分别为m和n,合并成有序数组C,并给出时间复杂度。 展开
 我来答
匿名用户
2017-12-06
展开全部

//两个有序的话,那么只用每次都从头部开始取值,然后插入到C数组里面
//所以时间复杂度为O(m+n)
public void mergeArray(int[] a,int[] b,int[] c){
    int m = 0;
    int n = 0;
    int x = 0;
    while(m<a.length&& n<b.length){
        if(a[m]<= b[n]){
            c[x++]=a[m++];
        }else{
            c[x++]=b[n++];
        }
    }
}
百度网友78d3612
2019-01-21
知道答主
回答量:1
采纳率:0%
帮助的人:770
展开全部
private static void mergeArray(int[] a, int[] b, int[] c) {
    int x = 0;
    int y = 0;
    int flag = 0;//重复的次数
    while (x < a.length || y < b.length) {
        if (x > b.length) {
            c[x + y - flag] = b[y];
            y++;
        } else if (y > a.length) {
            c[x + y - flag] = a[x];
            x++;
        } else if (a[x] > b[y] ) {
            c[x + y - flag] = b[y];
            y++;
        } else if (a[x] < b[y] ) {
            c[x + y - flag] = a[x];
            x++;
        } else if (a[x] == b[y]) { //相等
            c[x + y - flag] = a[x];
            x++;
            flag++;
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式