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

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

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

Time Limit: 100 ms Memory Limit: 880 KiB

SubmitStatistic

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

Hint

Source

#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
    int data[100010];
    int last;
} ST;
void creat(ST *head)
{
    int i;
    for(i = 0; i < head->last; i++)
    {
        scanf("%d", &head->data[i]);
    }
}
void bine(ST *head, ST *tail, ST *p)
{
    int i, j, k;
    i = 0, j = 0, k = 0;
    while(i < head->last && j < tail->last)
    {
        if(head->data[i] < tail->data[j])
        {
            p->data[k++] = head->data[i++];
        }
        else
        {
            p->data[k++] = tail->data[j++];
        }
    }
    if(i == head->last)
    {
        for(j = j; j < tail->last; j++)
        {
            p->data[k++] = tail->data[j];
        }
    }
    if(j == tail->last)
    {
        for(i = i; i < head->last; i++)
        {
            p->data[k++] = head->data[i];
        }
    }
    p->last = k;
}
int main()
{
    int i;
    ST *head, *tail, *p;
    head = (ST *)malloc(sizeof(ST));
    tail = (ST *)malloc(sizeof(ST));
    p = (ST *)malloc(sizeof(ST));
    scanf("%d%d", &head->last, &tail->last);
    creat(head);
    creat(tail);
    bine(head,tail,p);
    for(i = 0; i < p->last; i++)
    {
        if(i == p->last - 1)
        {
            printf("%d\n", p->data[i]);
        }
        else
        {
            printf("%d ", p->data[i]);
        }
    }
    return 0;
}

 


相关文章
|
存储 安全 Shell
深入浅出操作系统:从原理到实践
【9月更文挑战第21天】在数字时代的浪潮中,操作系统扮演着至关重要的角色。本文将深入探究操作系统的奥秘,从其基本概念和核心原理出发,逐步引导读者理解操作系统的工作机制。我们将通过生动的例子和实用的代码片段,揭示操作系统如何管理计算机硬件资源、提供用户接口以及确保系统安全与性能优化。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往操作系统深层世界的大门。准备好跟随我们的脚步,一起探索这个让计算机变得生动起来的神奇软件吧!
593 8
|
数据可视化 数据挖掘 BI
基于烟草零售商订单数据的Quick BI体验报告
Quick BI旨在通过智能的数据分析和可视化能力帮助企业构建高效的分析系统。在我初步了解该产品后,发现它不仅支持创建美观的仪表板、复杂的电子表格以及动态大屏,还能够无缝集成到现有的业务流程中,极大地提升了工作效率。尤其对于需要频繁展示数据分析结果给管理层或客户的场景来说,Quick BI提供了一个便捷且专业的解决方案。
|
机器学习/深度学习 人工智能 自然语言处理
以史为鉴,未雨绸缪:身处“大模型掀起的AI浪潮中”的感悟和思考
本文旨在帮助读者更深入地理解大模型和AI技术,重点介绍关键技术革新的背景与影响,特别是本次大模型时代和新一轮AI浪潮的推动因素与发展历程。
|
缓存 前端开发 JavaScript
React.memo 与 useMemo 超厉害!深入浅出带你理解记忆化技术,让 React 性能优化更上一层楼!
【8月更文挑战第31天】在React开发中,性能优化至关重要。本文探讨了`React.memo`和`useMemo`两大利器,前者通过避免不必要的组件重渲染提升效率,后者则缓存计算结果,防止重复计算。结合示例代码,文章详细解析了如何运用这两个Hook进行性能优化,并强调了合理选择与谨慎使用的最佳实践,助你轻松掌握高效开发技巧。
716 0
|
网络架构 Perl
BGP路由属性与选路
BGP路由属性与选路
|
负载均衡 Ubuntu 应用服务中间件
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
693 0
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
|
移动开发 JavaScript 前端开发
用js来实现页面全屏和退出全屏的功能
用js来实现页面全屏和退出全屏的功能
|
存储 监控 网络协议
2.1 网络io、io多路复用select/poll/epoll、基于事件驱动的reactor
2.1 网络io、io多路复用select/poll/epoll、基于事件驱动的reactor
405 0
|
网络架构
ensp :使用静态协议实现两台pc之间的通信
ensp :使用静态协议实现两台pc之间的通信
1017 0
ensp :使用静态协议实现两台pc之间的通信