首页 > 编程知识 正文

合并n个有序数组,java两个数组合并排序

时间:2023-05-06 12:26:40 阅读:62340 作者:1543

编写一个程序,按从小到大的顺序分别输入两个数组a和b,然后将这两个有序数组合并,使合并后的数组从小到大。

如何合并两个规则数组:

有两个数组a和b。 其中,数组a的末尾有足够的空间来存储数组b,并将数组b存储在数组a中。

创建长度大于或等于数组a和b总和的新数组c。 通过比较两个有序数组的元素,谁小就放入数组c中,直到一个数组为空,最后将剩下的数组元素全部放入数组c中。

测试输入:

10

10 15 42 52 59 64 67 73 82 88

3

24 32 57

输入说明:第一行是n,表示在数组a中输入的n个整数。 第二种行为是从小到大的n个整数。 第三行为m表示输入阵列b的m个整数。 第四个行为是从小到大的m个整数。

预期输出: 10 15 24 32 42 52 57 59 64 67 73 82 88

用第二种方法做:

# include stdio.h # definen 20 int main () {int a[N]={ 0 },b[N]={ 0 }; int i,j,k,anum,bnum,c[N N]; scanf('%d ',anum ); //输入数组a元素的个数for (I=0; IA编号; I ) Scanf('%d ',a[i]; }Scanf('%d ',bnum ); //输入数组b元素的个数for (I=0; ibnum; I )扫描(“% d”,b[i]; }/*****如果数组a和b都有数据,则while (iale )比较两个数组* * * * * * * * * * * * * * * */I=0,j=0,k=0 k; j; } else { c[k]=a[i]; k; I; }/* * * * * * * * * * * * * *在数组a中输入数据* * * * * * * * */* * * * * * * * * * * * * * * * * * * * * * * * *。 I ) { c[k]=a[i]; k; () )、end (、begin (、begin (、begin )、)、)、数组b中有数据时(、(、) j () { c[k ]=b[j]; (() )、end )、begin )、输出数组c * * * * * */* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。 I ) {printf('%d ',c[i] ); (/* * * * * * * *结束* * * * * * * * * * * * /返回0; }执行结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。