zoukankan      html  css  js  c++  java
  • SDUT 3329 顺序表应用5:有序顺序表归并

     

     

    顺序表应用5:有序顺序表归并

    Time Limit: 100 ms Memory Limit: 880 KiB

    Problem Description

    已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A、B表里所有元素,并且C表仍然保持有序。

    Input

     输入分为三行:
    第一行输入m、n(1<=m,n<=10000)的值,即为表A、B的元素个数;
    第二行输入m个有序的整数,即为表A的每一个元素;
    第三行输入n个有序的整数,即为表B的每一个元素;

    Output

     输出为一行,即将表A、B合并为表C后,依次输出表C所存放的元素。

    Sample Input

    5 3
    1 3 5 6 9
    2 4 10

    Sample Output

    1 2 3 4 5 6 9 10

    提示:这道题主要考察顺序表本质和数组相似的原理,所以我们可以通过建立两个数组,使得两个数组的元素进行比较,从而有序地输出合并后的表的元素。

    代码实现如下(gcc):
    #include<stdio.h>
    #include<stdlib.h>
    int a[10010];
    int b[10010];
    int i,j,k;
    int main()
    {
        int m,n;
        scanf("%d %d",&m,&n);
        for(i=0;i<m;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n;i++)
            scanf("%d",&b[i]);
        k=0;
        for(i=0,j=0;i<m&&j<n;)
        {
            if(a[i]<b[j])
            {
                if(k==0)
                    printf("%d",a[i]);
                else
                    printf(" %d",a[i]);
                i++;
            }
            else
            {
                if(k==0)
                    printf("%d",b[j]);
                else
                    printf(" %d",b[j]);
                j++;
            }
            k++;
        }
        for(k=i;k<m;k++)
            printf(" %d",a[k]);
        for(k=j;k<n;k++)
            printf(" %d",b[k]);
        return 0;
    }
    
    
    /***************************************************
    Result: Accepted
    Take time: 8ms
    Take Memory: 224KB
    ****************************************************/
  • 相关阅读:
    php之static静态变量详解
    设计模式【代理模式】
    小牟Andorid下面MD5具体实现的思路总结
    ubuntu14.04安装MySQL
    Android手机定位技术的发展
    我不同意你,这是您的支持
    我要遵守11文章数据库设计指南
    quick-cocos2d-x游戏开发【3】——display.newSprite创建向导
    第二章 自己的框架WMTS服务,下载数据集成的文章1
    JSTL实现int数据的类型的长度
  • 原文地址:https://www.cnblogs.com/jkxsz2333/p/9487154.html
Copyright © 2011-2022 走看看