Description
若线性表中数据元素相互之间可以比较,且数据元素在表中按值递增或递减,则称该表为有序表。
编写算法,将两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C。
输入格式
第一行:顺序表A的元素个数
第二行:顺序表A的各元素(非递减),用空格分开
第三行:顺序表B的元素个数
第四行:顺序表B的各元素(非递减),用空格分开
输出格式
第一行:顺序表A的元素列表
第二行:顺序表B的元素列表
第三行:合并后顺序表C的元素列表
输入样例
5
1 3 5 7 9
5
2 4 6 8 10
输出样例
List A:1 3 5 7 9
List B:2 4 6 8 10
List C:1 2 3 4 5 6 7 8 9 10
提示
输出时注意大小写和标点。
代码:
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int a[5000], b[5000], c[10000];
int len_a, len_b, len_c, i, j;
cin>>len_a;
for (i = 0; i < len_a; i++)
cin>>a[i];
cin>>len_b;
for (i = 0; i < len_b; i++)
cin>>b[i];
len_c = len_a + len_b;
i = 0; j = 0;
int k = 0;
while (i < len_a && j < len_b)
c[k++] = a[i] < b[j] ? a[i++] : b[j++];
while (i < len_a)
c[k++] = a[i++];
while (j < len_b)
c[k++] = b[j++];
printf("List A:");
for (i = 0; i < len_a; i++)
cout<<a[i]<<' ';
cout<<endl;
printf("List B:");
for(i = 0; i < len_b; i++)
cout<<b[i]<<' ';
cout<<endl;
printf("List C:");
for (i = 0; i < len_c; i++)
cout<<c[i]<<' ';
cout<<endl;
return 0;
}