c语言编程将元素有序且相异的两个一维数组(从小到大)归并成一个有序的一维数组

2024-12-19 14:47:32
推荐回答(2个)
回答1:

如果知道元素大小,就直接申明一个两个加起来的大小数组,譬如第一个数组是m个,第二个数组是n个,那么建立一个数组(假设是int型) int point3[m+n];如果不知道,就用vector。我们假设知道的;
for(int i=0; i{
for(int j=0; j
{
for(int k=0; k
{
if(point1[m]
{
point3[i]=point1[m];

m++;

i++;

}

else //如果数组2的第n个数字较小

{
point3[i]=point2[n];

n++

i++;

}

}

}

//如果怕i超出

if( i==(m+n) )

break;
}//得到的point3即为有序的了。

回答2:

注意思维 , 先将两个合并,在排序
#include
main()
{
int a[3]={1,2,3},b[2]={5,6},c[3+2],t,i,j;
for(i=0;i<3+2;i++)
if(i<3) c[i]=a[i];
else
c[i]=b[i-3];
//排序
for(i=4;i>0;i--)
for(j=0;jif(c[j]>c[j+1])
{t=c[j];c[j]=c[j+1];c[j+1]=t;}
//输出c[5]
for(i=0;i<3+2;i++)
printf("%8d",c[i]);
putchar('\n');
}