有序表归并【C语言】
程序员文章站
2022-04-27 10:20:49
...
#include <stdio.h>
#include <stdlib.h>
//有序表归并
struct node{
int data[205];
int length;
}La,Lb,Lc;
int main() {
int m,n,i,j;
while (scanf("%d",&m)!=EOF){
//输入La的长度
for (i = 0; i <m ; i++) {
scanf("%d",&La.data[i]);
}
La.length=m;
scanf("%d",&n);
//输入Lb的长度
for (i = 0; i <n ; i++) {
scanf("%d",&Lb.data[i]);
}
Lb.length=n;
int k=0;
Lc.length=0;
i=0;
j=0;
while (i!=La.length&&j!=Lb.length) {
if (La.data[i] <= Lb.data[j]) {
Lc.data[k] = La.data[i];
i++;
k++;
Lc.length++;
} else {
Lc.data[k] = Lb.data[j];
j++;
k++;
Lc.length++;
}
}
if (i!=La.length){
for(i;i<La.length;i++){
Lc.data[k]=La.data[i];
k++;
Lc.length++;
}
}
if(j!=Lb.length){
for (j; j< Lb.length; j++) {
Lc.data[k]=Lb.data[j];
k++;
Lc.length++;
}
}
int l;
for(l=0;l<Lc.length;l++){
if (l!=0)
printf(" ");
printf("%d",Lc.data[l]);
}
printf("\n");
}
return 0;
}