有两个有序数组,合并为一个有序数组,合并两个无序数组

  有两个有序数组,合并为一个有序数组,合并两个无序数组

  BM87合并两个有序数组

  88.合并两个有序数组

  知识点数组双指针

  描述一个有序整数数组A和一个有序整数数组B,请将数组B合并到数组A中成为一个有序升序数组。

  数据范围:

  注意:

  1.确保数组a有足够的空间存储数组b的元素,a和b中的初始元素分别是m和n,数组a的空间是m n2。不返回合并后的数组,只需将数组b的数据合并到数组a中,后台会自动打印出合并后的数组a的内容,不需要自己打印。3.数组a也在[0,m-1]的范围内排序。

  示例1输入:

  [4,5,6],[1,2,3]

  复制返回值:

  [1,2,3,4,5,6]

  复制描述:

  数组A是[4,5,6],数组B是[1,2,3]。后台程序会提前将数组A扩展到[4,5,6,0,0],而数组B仍然是[1,2,3],m=3,n=3,并传入函数merge。然后请学生完成。

  2示例输入:

  [1,2,3],[2,5,6]

  复制返回值:

  [1,2,2,3,5,6]

  用双指针解决问题——就地解决;

  因为A有足够的空间,所以I,K,J可以分别指向A[m-1],B[n-1]和A[m n-1],然后遍历I和K,比较A[i]和A[K]的大小,把交大的值放在A[J],更新I,K,J的值。

  注意:

  其实有一种情况是不用遍历整个数组A的,就是B全部插入A后,A还有剩余的数。在这种情况下,你可以跳出这个循环。所以代码还可以进一步优化~

  代码如下:

  #包含位/标准数据。h

  //https://www . now coder . com/practice/89865d 4375634 fc 484 F3 a 24 b 7 Fe 65665?tpId=295 tags=title=难度=0 judge status=0 RP=0 source URL=/exam/OJ?page=1 & tab=% E7 % AE % 97% E6 % B3 % 95% E7 % AF % 87 & topic id=295

  //BM87合并两个有序数组

  void merge(int A[],int m,int B[],int n)

  {

  int left=m-1;

  int right=n-1;

  int I=m n-1;

  while (left=0 right=0)

  {

  if(左=0右=0)

  {

  if(A[左]=B[右])

  {

  A[I-]=A[left-];

  }

  其他

  {

  a[I-]=B[右-];

  }

  }

  else if (left=0)

  {

  A[I-]=A[left-];

  }

  其他

  {

  a[I-]=B[右-];

  }

  }

  返回;

  }下面的代码比较短~

  类别解决方案

  {

  公共:

  void merge(向量整数1,整数m,向量整数2,整数n)

  {

  int left=m-1;

  int right=n-1;

  int index=m n-1;

  while(右=0)

  {

  if(左0 nums 2[右]=nums 1[左])

  {

  num S1[index-]=num S2[right-];

  }

  其他

  {

  num S1[index-]=num S1[left-];

  }

  }

  }

  };

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: