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<stdio.h>
#include <iostream>
using namespace std;
int main(){
// setbuf(stdout, NULL);
int n,m; //n为数组a的长度,m为数组b的长度
int i=0,j=0,k=0;
int a[10000];
int b[10000];
int c[100000];
//输入A数组
scanf("%d",&n);
for (int l = 0; l < n; ++l) {
cin>>a[l];
}
//输入B数组
scanf("%d",&m);
for (int l = 0; l < m; ++l) {
cin>>b[l];
}
//对AB数组排序
while(i<n && j<m){
if (a[i] <= b[j]){
c[k++] = a[i++];
}else{
c[k++] = b[j++];
}
}
//如果A数组还剩余,遍历放入
while(i < n) c[k++] = a[i++];
//如果B数组还剩余,遍历放入
while(j < m) c[k++] = b[j++];
//输出数组A
cout<<"List A:";
for (int h = 0; h < n; h++) cout<<a[h]<<' ';
cout<<endl;
//输出数组B
cout<<"List B:";
for (int h = 0; h < m; h++) cout<<b[h]<<' ';
cout<<endl;
//输出数组C
cout<<"List C:";
for (int h = 0; h < n+m; h++) cout<<c[h]<<' ';
cout<<endl;
}