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

一个简单的有序数组合并算法:写一个函数,传入 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
相关文章:
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
北京企业网站设计制作公司,北京铁路集团官方网站?
建站之星3.0如何解决常见操作问题?
如何在建站之星绑定自定义域名?
如何实现建站之星域名转发设置?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何快速查询网址的建站时间与历史轨迹?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
定制建站价位费用解析与套餐推荐全攻略
北京的网站制作公司有哪些,哪个视频网站最好?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何通过PHP快速构建高效问答网站功能?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
网站制作软件有哪些,制图软件有哪些?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
h5网站制作工具有哪些,h5页面制作工具有哪些?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何零成本快速生成个人自助网站?
如何通过cPanel快速搭建网站?
北京网站制作网页,网站升级改版需要多久?
如何在云主机上快速搭建网站?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
北京建设网站制作公司,北京古代建筑博物馆预约官网?
网站制作免费,什么网站能看正片电影?
建站之星如何快速生成多端适配网站?
c++ stringstream用法详解_c++字符串与数字转换利器
如何选择可靠的免备案建站服务器?
网站制作话术技巧,网站推广做的好怎么话术?
如何通过建站之星自助学习解决操作问题?
网站制作价目表怎么做,珍爱网婚介费用多少?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在局域网内绑定自建网站域名?
图册素材网站设计制作软件,图册的导出方式有几种?
贸易公司网站制作流程,出口贸易网站设计怎么做?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何快速搭建支持数据库操作的智能建站平台?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何通过网站建站时间优化SEO与用户体验?
如何通过多用户协作模板快速搭建高效企业网站?
如何打造高效商业网站?建站目的决定转化率
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
电商网站制作公司有哪些,1688网是什么意思?
建站主机空间推荐 高性价比配置与快速部署方案解析
制作宣传网站的软件,小红书可以宣传网站吗?
青岛网站建设如何选择本地服务器?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
存储型VPS适合搭建中小型网站吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。