/*int i,j;//非指针第一种,兼容性更大,如果输入非有序数字可自动排列
for(i=0;i<anum;i++)
{
c[i]=a[i];
}
for(i=anum;i<(anum+bnum);i++)
{
c[i]=b[i-anum];
}
for(i=0;i<(anum+bnum);i++)
{
for(j=0;j<(anum+bnum-i-1);j++)
{
if(c[j]>c[j+1])
{
int e;
e=c[j+1];
c[j+1]=c[j];
c[j]=e;
}
}
}
printf("%d",c[0]);
for(i=1;i<(anum+bnum);i++)
printf(" %d",c[i]);*/
/*int i,j,k;//非指针第二种,单一指向此题
for(i=0,j=0,k=0;i<anum&&j<bnum;k++)
{
if(a[i]>b[j])
{
c[k]=b[j];
j++;
}
else
{
c[k]=a[i];
i++;
}
}
while(i<anum)
{
c[k]=a[i];
i++;k++;
}
while(j<bnum)
{
c[k]=b[j];
j++;k++;
}
printf("%d",c[0]);
for(i=1; i<(anum+bnum); i++)
printf(" %d",c[i]);*/
/*for(pi=a,pj=b,pk=c;pi<anum+a&&pj<bnum+b;pk++)指针第一种,承非指针第二种
{
if(*pi>*pj)
{
*pk=*pj;
pj++;
}
else
{
*pk=*pi;
pi++;
}
}
while(pi<anum+a)
{
*pk=*pi;
pi++;pk++;
}
while(pj<bnum+b)
{
*pk=*pj;
pj++;pk++;
}
printf("%d",*c);
for(pk=c+1; pk<c+(anum+bnum); pk++)
printf(" %d",*pk);
printf("\n");
return 0;*/
//指针第二种,兼容性更大,如果输入非有序数字可自动排列
for(pi=a,pk=c;pi<anum+a;pi++,pk++)
{
*pk=*pi;
}
for(pj=b;pj<(anum+bnum+b);pj++,pk++)
{
*pk=*pj;
}
int i,j;
for(i=0;i<(anum+bnum);i++)
{
for(j=0;j<(anum+bnum-i-1);j++)
{
if(c[j]>c[j+1])
{
int e;
e=c[j+1];
c[j+1]=c[j];
c[j]=e;
}
}
}
pk=c;
printf("%d",*pk);
for(pk=c+1; pk<(anum+bnum+c); pk++)
printf(" %d",*pk);
指针方法实现将两个有序的数组合并成一个有序数组
最新推荐文章于 2024-07-04 15:45:02 发布