7-2 合并两个有序数组为新的有序数组 (15 分)

**

7-2 合并两个有序数组为新的有序数组 (15 分)

**
合并两个升序排序的整型数组为一个新的升序整型数组并输出。

输入格式:

首先输入第一个数组的数据个数后输入第一个数组按升序排序的数据,然后再输入第二个数组的数据个数,最后输入第二个数据按升序排序的数据。数据之间用一个或多个空格或回车符分隔。

输出格式:

输出合并后按升序排序的数组的元素,元素之间用一个空格分隔。(注意输出的最后一个元素后会有一个空格符)

输入样例:

4
1 2 8 10
5
-1 5 6 20 200

输出样例:

-1 1 2 5 6 8 10 20 200


import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner x=new Scanner(System.in);
        int a,b,i,j=0,k=0;
        //输入第一组数据
        a=x.nextInt();
        int[] c=new int[a];
        for(i=0;i<a;i++) {
            c[i]=x.nextInt();
        }
        //输入第二组数据
        b=x.nextInt();
        int[] d=new int[b];
        for(i=0;i<b;i++) {
            d[i]=x.nextInt();
        }

        int[] e=new int[a+b];
        i=0;
        //两组数据个数相同部分相互比较大小放入数组e
        while(i<a&&j<b){
            if (c[i]<d[j]){
                e[k]=c[i];
                k++;i++;
            }
            else{
                e[k]=d[j];
                k++;j++;
            }
        }
        //将多出来的部分放入数组
        while(i<a){
            e[k]=c[i];
            k++;i++;
        }
        while(j<b){
            e[k]=d[j];
            k++;j++;
        }
        //输出合并后的数组e
        for(i=0;i<a+b;i++)
            System.out.print(e[i]+" ");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值