题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
描述
输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
数据范围:
1≤n,m≤1000 , 序列中的值满足 0≤val≤30000
输入描述:
输入包含三行,
第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。
第二行包含n个整数,用空格分隔。
第三行包含m个整数,用空格分隔。
输出描述:
输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
#include <stdio.h> int main() { int n, m; scanf("%d%d",&n, &m); int arr[n+m]; int i; //赋值 for(i = 0;i < n+m;i++) { scanf("%d",&arr[i]); } //升序排序 for(i = 1;i < n+m;i++) { int j; int temp; for(j = 0;j < i;j++) { if(arr[i] <= arr[j]) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } //打印 for (i = 0;i < n+m;i++) { printf("%d ",arr[i]); } return 0; }