设计一个算法,将两个元素有序(从小到大)的顺序表合并成一个有序顺序表……

提示上说是二路归并 刚学数据结构 不怎么会 用c语言版本做
2024-12-25 17:11:51
推荐回答(2个)
回答1:

#include
void read(int a[],int n)
{
int i;
for(i=0;i}
int main()
{
int a[1100],n,m,b[100];
int c[1000],k,i,j;
scanf("%d%d",&n,&m);
read(a,n);
read(b,n);
j=i=k=0;
while(i {
while(i {
c[k++]=a[i];
i++;
}
while(i {
c[k++]=b[j];
j++;
}
}
while(i {
c[k++]=a[i];
i++;
}
while(j {
c[k++]=b[j];
j++;
}
for(i=0;i puts("");
return 0;
}

回答2:

int a[100],b[100],c[200];//自己定义
int *p1=a,*p2=b,*p3=c;
*p3++=*p1<*p2?*p1++:*p2++;
for(;p3 *p3=*p1<*p2?*p1++:*p2++;