顺序表应用5:有序顺序表归并
来源:互联网 发布:淘宝网饰品店 编辑:程序博客网 时间:2024/05/23 16:17
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所存放的元素。
Example Input
5 31 3 5 6 92 4 10
Example Output
1 2 3 4 5 6 9 10
Hint
Author
#include <stdio.h>#include <stdlib.h>#include <string.h>#include<bits/stdc++.h>#define maxn 10100typedef struct list{ int *data; int last;}seq;void head(int n, seq &seeq){ seeq.data=(int *)malloc(sizeof(int)*n); int i=0; while(n--) { scanf("%d", &seeq.data[i++]); } seeq.last=i;}void geq ( seq &seeq, seq &seeq2, seq &seeq3){ seeq3.last=seeq.last+seeq2.last; int a1=0, a2=0; int i=0; while(a1<seeq.last&&a2<seeq2.last) { if(seeq.data[a1]<=seeq2.data[a2]) seeq3.data[i++]=seeq.data[a1++]; else seeq3.data[i++]=seeq2.data[a2++]; } if(a1==seeq.last) { while(i<seeq3.last) { seeq3.data[i++]=seeq2.data[a2++]; } } else { while(i<seeq3.last) { seeq3.data[i++]=seeq.data[a1++]; } }}int main(){ seq seeq,seeq2, seeq3; int k, m; scanf("%d%d", &k, &m); head(k, seeq); head(m, seeq2); seeq3.data=(int *)malloc(sizeof(int)*(seeq.last+seeq2.last)); geq(seeq, seeq2, seeq3); for(int i=0; i<seeq3.last; i++) { printf("%d%c", seeq3.data[i], i==seeq3.last-1?'\n':' '); } return 0;}
0 0
- 顺序表应用 有序顺序表 归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 【3329】顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- sdut oj3329 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- 顺序表应用5:有序顺序表归并
- SDUT3329顺序表应用5:有序顺序表归并
- 最小子串(改进版)
- 【JAVA】科研信息管理系统
- File.IO流,异常总结
- DECODE AND NULL
- 直接插入排序算法
- 顺序表应用5:有序顺序表归并
- CentOS7.3定制Gnome3外观
- [51nod 1056]最长等差数列V2
- Linux 操作知识
- 30 Python 深拷贝和浅拷贝
- 集合框架_Map集合的遍历之键值对对象找键和值
- Python join()函数
- HTTPS和HTTP的区别
- 顺序表应用6:有序顺序表查询