归并算法之有序数组合并算法实现

一个简单的有序数组合并算法:写一个函数,传入 2 个有序的整数数组,返回一个有序的整数数组。实现相当简单,创建一个长度为这两个长度之和的数组,然后分别用三个指针指向这三个数组,找到这两个数组中各个元素在合并数组中的位置并插入,直到某个数组指针到达尾部。再将另一个数组剩下的所有元素,直接放入归并数组尾部。算法的简单实现,需要注意的是对参数的校验,判断数组是否有序。
public class MergeOrderedArray {
public static int[] merge(int [] a,int []b){
if(!isOrderedArray(a)){
System.out.println(" array a is not an ordered array.");
return null;
}
if(!isOrderedArray(b)){
System.out.println(" array b is not an ordered array.");
return null;
}
int a_len = a.length;
int b_len = b.length;
int[] merge = new int[a_len+b_len];
int i=0,j=0,k=0;
while(i<a_len&&j<b_len){
if(a[i]<b[j]){
merge[k++]=a[i++];
}else{
merge[k++]=b[j++];
}
}
//A数组全部合并完毕,将b数组剩余直接加入合并数组
if(i==a_len){
for(;j<b_len;j++){
merge[k++]= b[j];
}
}else{
for(;i<a_len;i++){
merge[k++]= a[i];
}
}
return merge;
}
public static boolean isOrderedArray(int [] array){
if(array==null||array.length==0){
return false;
}
for(int i = 0;i<array.length-1;i++){
if(array[i]>array[i+1]){
return false;
}
}
return true;
}
public static void main(String[] args) {
int a [] = {1,2,3,4,5};
int b [] = {2,3,4,5,6,7,8,9};
int [] merge = merge(a,b);
System.out.println(Arrays.toString(merge));
}
}
算法的时间复杂度,取决于待合并的两个数组的长度,所以是O(M+N),空间复杂度也是O(M+N),即需要的归并数组的长度是M+N。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 归并算法有序数组合并
# 归并算法
# Java实现把两个数组合并为一个的方法总结
# Java实现合并两个有序序列算法示例
# java 两个数组合并的几种方法
# 合并有序数组的实现(java与C语言)
# java实现把两个有序数组合并到一个数组的实例
# 这两个
# 的是
# 组中
# 希望能
# 谢谢大家
# 这三个
# 再将
# 创建一个
# 需要注意
# 长度为
# 一个函数
# static
# MergeOrderedArray
# public
# isOrderedArray
# merge
# int
# pre
# br
# strong
相关文章:
建站之星备案流程有哪些注意事项?
如何通过虚拟机搭建网站?详细步骤解析
制作门户网站的参考文献在哪,小说网站怎么建立?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
Swift中switch语句区间和元组模式匹配
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
建站VPS推荐:2025年高性能服务器配置指南
如何快速打造个性化非模板自助建站?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
大连网站设计制作招聘信息,大连投诉网站有哪些?
如何通过VPS建站无需域名直接访问?
魔方云NAT建站如何实现端口转发?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何在阿里云高效完成企业建站全流程?
网站制作需要会哪些技术,建立一个网站要花费多少?
javascript中对象的定义、使用以及对象和原型链操作小结
,想在网上投简历,哪几个网站比较好?
建站主机选购指南与交易推荐:核心配置解析
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
建站之星客服服务时间及联系方式如何?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
湖北网站制作公司有哪些,湖北清能集团官网?
如何在Windows虚拟主机上快速搭建网站?
郑州企业网站制作公司,郑州招聘网站有哪些?
香港服务器部署网站为何提示未备案?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
成都响应式网站开发,dw怎么把手机适应页面变成网页?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
在线教育网站制作平台,山西立德教育官网?
学校建站服务器如何选型才能满足性能需求?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何选择适合PHP云建站的开源框架?
如何用虚拟主机快速搭建网站?详细步骤解析
如何用花生壳三步快速搭建专属网站?
如何快速使用云服务器搭建个人网站?
建站之星如何取消后台验证码生成?
建站之星导航菜单设置与功能模块配置全攻略
香港服务器建站指南:免备案优势与SEO优化技巧全解析
*服务器网站为何频现安全漏洞?
建站之家VIP精选网站模板与SEO优化教程整合指南
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何解决VPS建站LNMP环境配置常见问题?
,巨量百应是干嘛的?
如何在阿里云域名上完成建站全流程?
开封网站制作公司,网络用语开封是什么意思?
*请认真填写需求信息,我们会在24小时内与您取得联系。