zzuli OJ 1124: 两个有序数组合并

来源:互联网 发布:远程网络教育学历 编辑:程序博客网 时间:2024/06/05 07:39

Description

已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。

Input

输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。

Output

输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。

Sample Input

4 1 3 5 73 6 4 2

Sample Output

7 6 5 4 3 2 1

HINT

试图排序的孩子们要小心了~~~~~~

Source

#include<stdio.h>int a[1000000]={0},b[1000000];//防止堆栈溢出 int main(){   int n,m,i,j,k=0;    scanf("%d",&n);    for(i=n-1;i>=0;i--){        scanf("%d",&a[i]);}    scanf("%d",&m);    for(j=0;j<m;j++){        scanf("%d",&b[j]);    }         //初始化 两个数组完毕    //算法思想  a数组按照逆序遍历         int c[n+m];    i=0,j=0;//初始化   while (i < n && j < m) {      if (a[i] >= b[j])        c[k++] = a[i++];      else        c[k++] = b[j++];    }    while (i < n)      c[k++] = a[i++];    while (j < m)      c[k++] = b[j++];             for(k=0;k<m+n-1;k++)      printf("%d ",c[k]);       printf("%d",c[m+n-1]);    return 0;}

1 0
原创粉丝点击