全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

一个简单的有序数组合并算法:写一个函数,传入 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小时内与您取得联系。