C语言编程问题

有两个顺序表A(有m个元素)和B(有n个元素),其元素均按从小到大的升序排列。编写算法,将这两个顺序表合并成一个顺序表C,要求C也是按从小到大的升序排列。测试要求:在A与B均空、A与B一个为空、A与B均不空的情况下测试程序运行情况。

int* Paixu(int a[],int m,int b[],int n)//m为a数组的长度,n为b数组的长度
{
int * p=malloc(sizeo (int)*(m+n));//建立p数组用于存放
int i,j,t;
for(j=0;j<=m-1;j++)
for(i=0;i<=m-j;i++)
{
if (a[i]>a[i+1]
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
if(n==0)//b数组为空时
return a;
for(j=0;j<=n-1;j++)
for(i=0;i<=n-j;i++)
{
if (b[i]>a[i+1]
{
t=b[i];
b[i]=b[i+1];
b[i+1]=t;
}
}
if(m==0)//a数组为空时
return b;
for(i=0,j=0,t=0;i<n+m;i++)
{
if(a[j]<=b[t]||t==n)
{
p[i]=a[j];
i++;j++;
}
if(a[j]>b[t]||j==m)
{
p[i]=b[t];
i++;t++;
}
}
return p;
}
温馨提示:答案为网友推荐,仅供参考
相似回答