[codevs3296]有序数组合并
题目描述 Description
合并两个有序数组A和B,使得结果依然有序。
进阶:合并两个有序数组A和B,假设A有n个数,B有m个数,A数组后面还有m个空余空间,需要将结果保存在A中。
请使用O(n)的算法完成
输入描述 Input Description
第一行输入两个整数n和m
第二行输入n个用空格隔开的整数表示数组A
第三行输入m个用空格隔开的整数表示数组B
输入保证A和B数组非递减
输出描述 Output Description
输出一行一共n+m个空格隔开的整数,即合并后的结果
样例输入 Sample Input
2 3
1 2
1 1 5
样例输出 Sample Output
1 1 1 2 5
数据范围及提示 Data Size & Hint
1<=n,m<=1000000
思路
用三个指针分别指向正在处理的两个数组和结果数组,最后需要看一看是不是全部比较完了,时间复杂度O(n);
var n,m,i,j,k,x:longint;
a,b,c:array[..] of int64;
begin
readln(n,m);
for i:= to n do read(a[i]);
for i:= to m do read(b[i]);
i:=;//a的指针
j:=;//b的指针
k:=;//末尾的指针
while (i<>n+)and(j<>m+) do
begin
if a[i]<=b[j] then
begin
c[k]:=a[i];
inc(i);
inc(k);
end
else
begin
c[k]:=b[j];
inc(j);
inc(k);
end;
end;
// inc(k);
for x:=i to n do
begin
c[k]:=a[x];
inc(k);
end;
for x:=j to m do
begin
c[k]:=b[x];
inc(k);
end;
for i:= to (n+m) do write(c[i],' ');
end.
[codevs3296]有序数组合并的更多相关文章
- java 有序数组合并
有序数组合并,例如: 数组 A=[100, 89, 88, 67, 65, 34], B=[120, 110, 103, 79, 66, 35, 20] 合并后的结果 result=[120, 110 ...
- 两个有序数组合并成一个有序数组(要求时间复杂度为O(n))
面试题: 怎样把两个有序数组合并成有序数组呢 逻辑步骤: 1.假设两个数组为A和B 2.A和B都是从小到大的顺序进行排列 ** 1.我们可以直接比较两个数组的首元素,哪个小就把这个小元素放入可变数组. ...
- [CODEVS3299]有序数组合并求第K大问题
题目描述 Description 给出两个有序数组A和B(从小到大有序),合并两个有序数组后新数组c也有序,询问c数组中第k大的数 假设不计入输入输出复杂度,你能否给出一个O(logN)的方法? 输入 ...
- 3299 有序数组合并求第K大问题
题目描述 Description 给出两个有序数组A和B(从小到大有序),合并两个有序数组后新数组c也有序,询问c数组中第k大的数 假设不计入输入输出复杂度,你能否给出一个O(logN)的方法? 输入 ...
- 两个有序数组合并为一个有序数组---python
def merge(a, b): """ 合并2个有序数组,默认a,b都是从小到大的有序数组 """ # 1.临时变量 i, j = 0, ...
- Python3将两个有序数组合并为一个有序数组
[本文出自天外归云的博客园] 第一种思路,把两个数组合为一个数组然后再排序,问题又回归到冒泡和快排了,没有用到两个数组的有序性.(不好) 第二种思路,循环比较两个有序数组头位元素的大小,并把头元素放到 ...
- PAT 1029 Median (25分) 有序数组合并与防坑指南
题目 Given an increasing sequence S of N integers, the median is the number at the middle position. Fo ...
- iOS常用算法之两个有序数组合并, 要求时间复杂度为0(n)
思路: 常规思路: 先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素, 一一对比, 直到找到合适的, 就插入进去; 简单思路: 设置数组C, 对比A和B数组的首项元素, 找到最小的, 就放 ...
- 随机生成并排序 C,去同,有序数组合并排序
#include<iostream> #include<stdlib.h> #include<time.h> using namespace std; int ma ...
随机推荐
- trigger
trigger() 方法触发被选元素的指定事件 <html><head><script type="text/javascript" src=&quo ...
- 如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码
如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码 1.Delphi编译方式介绍: 当我们在开发一个常规应用程序时,Delphi可以让我们用两种方式使用VCL,一种是把VCL中的申明 ...
- 调试NodeJS应用
OS:Windows 1.下载安装NodeJS 点击http://nodejs.org/界面上“Install”,下载后运行安装,默认安装到到C:\Program Files\nodejs.安装后确认 ...
- Python 列表实现字典的get功能
字典有一个很好用的方法,就是get,既可以预防KeyError异常,也可以为不存在的key设置一个默认的value 例如: v=d.get('k','default') 而列表没有一个类似的方法,如果 ...
- 如何根据w3wp.exe的进程pid查看是哪个应用程序池
如何根据w3wp.exe的进程pid查看是哪个应用程序池? 根据iisapp 查看PID所对应的IIS应用程序池及详细介绍: 从IIS6.0可以在IIS中架设多个站点并给每个站点指定不同的应用程序池, ...
- 【加密】C#.NET 各种加密解密
包括:AES/DES/Base64/RSA/MD5/SHA256 http://www.sosuo8.com/article/show.asp?id=3083 http://blog.csdn.net ...
- splay学习笔记
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入.查找和删除操作.(来自百科) 伸展树的操作主要是 –rotate(x) 将x旋转到x的父亲的位置 voi ...
- delphi xe5 android 使用样式(风格)
1.在界面上添加 TStyleBook 控件 2.点击Resource 选择xe5程序安装带的几个风格的其中之一,路径存放在: C:\Program Files\Embarcadero\RAD Stu ...
- visualvm 监控 远程 机器上的 Java 程序
JDK里面本身就带了很多的监控工具,如JConsole等. 我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程 ...
- Unity3D研究院之在MAC上脚本XlsxWriter写入Excel .xlsx格式
原地址:http://www.xuanyusong.com/archives/3011 以前找了很久可以跨平台支持读写Excel的工具,我也试了很多种DLL.可在Windows上各个完美支持,可是在M ...