顺序表应用5:有序顺序表归并
来源:互联网 发布:java线上问题排查 编辑:程序博客网 时间:2024/06/02 19:49
顺序表应用5:有序顺序表归并
Time Limit: 100MS Memory limit: 800K
题目描述
已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A、B表里所有元素,并且C表仍然保持有序。
输入
输入分为三行:
第一行输入m、n(1<=m,n<=10000)的值,即为表A、B的元素个数;
第二行输入m个有序的整数,即为表A的每一个元素;
第三行输入n个有序的整数,即为表B的每一个元素;
第一行输入m、n(1<=m,n<=10000)的值,即为表A、B的元素个数;
第二行输入m个有序的整数,即为表A的每一个元素;
第三行输入n个有序的整数,即为表B的每一个元素;
输出
输出为一行,即将表A、B合并为表C后,依次输出表C所存放的元素。
示例输入
5 31 3 5 6 92 4 10
示例输出
1 2 3 4 5 6 9 10
提示
来源
示例程序
- 提交
- 状态
#include <stdio.h>
#include <algorithm>#include <stdlib.h>
#define MAX 10000002
using namespace std;
typedef struct
{
int *elem;
int length;
}Sq;
void initList(Sq *L,Sq *M,Sq *Z)
{
L->elem = (int *)malloc(MAX*4);
if( !L->elem )
{
exit(-1);
}
L->length = 0;
M->elem = (int *)malloc(MAX*4);
if( !M->elem )
{
exit(-1);
}
M->length = 0;
Z->elem = (int *)malloc(MAX*4);
if( !Z->elem )
{
exit(-1);
}
Z->length = 0;
}
void create(Sq *L, int n, Sq *M, int m)
{
int i;
for(i = 0;i < n; i++)
{
scanf("%d",&L->elem[i]);
}
L->length = n;
for(i = 0;i < m; i++)
{
scanf("%d",&M->elem[i]);
}
M->length = m;
}
void caozuo(Sq *L,Sq *M,Sq *Z)
{
int i = 0,j = 0,e = 0;
while(i < L->length && j < M->length)
{
if(L->elem[i] < M->elem[j])
{
Z->elem[e++] = L->elem[i++];
}
else if(L->elem[i] > M->elem[j])
{
Z->elem[e++] = M->elem[j++];
}
else
{
Z->elem[e++] = L->elem[i++];
Z->elem[e++] = M->elem[j++];
}
}
while(i < L->length)
{
Z->elem[e++] = L->elem[i++];
}
while(j < M->length)
{
Z->elem[e++] = M->elem[j++];
}
Z->length = M->length+L->length;
}
void display(Sq *Z)
{
int i;
for(i = 0;i < Z->length; i++)
{
printf(i != Z->length - 1 ? "%d " : "%d\n", Z->elem[i]);
}
}
int main()
{
int n,m;
Sq L;
Sq M;
Sq Z;
scanf("%d %d",&n,&m);
initList(&L,&M,&Z);
create(&L, n, &M, m);
caozuo(&L, &M, &Z);
display(&Z);
}
这是用顺序表做的,虽然很麻烦,但是还是必会的东西。
代码菜鸟,若有错误,请多包涵!!
0 0
- 顺序表应用 有序顺序表 归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 【3329】顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- sdut oj3329 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- SDUT3329顺序表应用5:有序顺序表归并
- uboot编译学习----直接打完整个补丁后执行make,提示编译失败
- POJ-1035-Spell checker
- 使用Spring4+Maven构建webapp项目
- UE4 启动器一系列问题处理链接
- 深度学习斯坦福cs231n 课程笔记
- 顺序表应用5:有序顺序表归并
- POJ1067 取石子游戏
- 哈希函数相关
- redis学习笔记之list类型
- 剑指offer 67题 【回溯法】机器人的运动范围
- 企业信息化快速开发平台 JeeSite
- 贪心算法详解
- Java-基础知识
- Java的基础知识4——容器