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

一个简单的有序数组合并算法:写一个函数,传入 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
相关文章:
如何通过多用户协作模板快速搭建高效企业网站?
如何破解联通资金短缺导致的基站建设难题?
如何在Windows服务器上快速搭建网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何通过远程VPS快速搭建个人网站?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
公司网站的制作公司,企业网站制作基本流程有哪些?
安徽网站建设与外贸建站服务专业定制方案
广东企业建站网站优化与SEO营销核心策略指南
设计网站制作公司有哪些,制作网页教程?
如何用狗爹虚拟主机快速搭建网站?
西安大型网站制作公司,西安招聘网站最好的是哪个?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
Python路径拼接规范_跨平台处理说明【指导】
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
宁波自助建站系统如何快速打造专业企业网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何用PHP工具快速搭建高效网站?
如何在新浪SAE免费搭建个人博客?
如何高效利用200m空间完成建站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
IOS倒计时设置UIButton标题title的抖动问题
官网网站制作腾讯审核要多久,联想路由器newifi官网
建站主机选购指南:核心配置与性价比推荐解析
如何获取开源自助建站系统免费下载链接?
Python如何创建带属性的XML节点
网站制作知乎推荐,想做自己的网站用什么工具比较好?
如何用VPS主机快速搭建个人网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何用景安虚拟主机手机版绑定域名建站?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
平台云上自助建站如何快速打造专业网站?
建站之星伪静态规则如何正确配置?
如何用PHP快速搭建高效网站?分步指南
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
建站与域名管理如何高效结合?
建站之家VIP精选网站模板与SEO优化教程整合指南
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
,怎么在广州志愿者网站注册?
建站之星北京办公室:智能建站系统与小程序生成方案解析
制作网站的软件免费下载,免费制作app哪个平台好?
如何在企业微信快速生成手机电脑官网?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何通过cPanel快速搭建网站?
如何在IIS7上新建站点并设置安全权限?
如何使用Golang安装API文档生成工具_快速生成接口文档
名字制作网站免费,所有小说网站的名字?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
*请认真填写需求信息,我们会在24小时内与您取得联系。