已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。
已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。
输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。
输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。
试图排序的孩子们要小心了~~~~~~
1 # include <stdio.h> 2 # define N 1000010 3 int a[N], b[N], c[2 * N]; 4 int main () 5 { 6 int i, j, k, m, n, flag = 0; 7 scanf("%d", &m); 8 for (i = m - 1; i >= 0; i--) 9 scanf("%d", &a[i]); 10 11 scanf("%d", &n); 12 for (j = 0; j < n; j++) 13 scanf("%d", &b[j]); 14 i = 0; 15 j = 0; 16 k = 0; 17 while (i < m && j < n) 18 { 19 if (a[i] > b[j]) 20 c[k++] = a[i++]; 21 else 22 c[k++] = b[j++]; 23 } 24 while (i < m) 25 c[k++] = a[i++]; 26 while (j < n) 27 c[k++] = b[j++]; 28 for (i = 0; i < k; i++) 29 { 30 if (flag == 0) 31 printf("%d", c[i]); 32 else 33 printf(" %d", c[i]); 34 flag = 1; 35 } 36 printf("\n"); 37 return 0; 38 }
原文:http://www.cnblogs.com/yishilin/p/4347963.html