全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何通过多用户协作模板快速搭建高效企业网站?  如何破解联通资金短缺导致的基站建设难题?  如何在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小时内与您取得联系。