题目描述
输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
输入描述:
输入包含三行,
第一行包含两个正整数n, m(1 ≤ n,m ≤ 100),用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。
第二行包含n个整数(范围1~5000),用空格分隔。
第三行包含m个整数(范围1~5000),用空格分隔。
输出描述:
输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
解题思路
利用sort进行排序。
代码
#include<iostream> #include<algorithm>//包含算法的头文件。sort在algorithm头文件里面 using namespace std; int main() { int m,n; cin>>m>>n; int a[m+n+1];//防止越界,定义数组大一点 for(int i=0;i<m+n;++i) cin>>a[i];//合并为一个数组 sort(a,a+m+n);//利用sort进行排序 for(int j=0;j<m+n;++j) cout<<a[j]<<" "; return 0; }