博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序...
阅读量:7186 次
发布时间:2019-06-29

本文共 610 字,大约阅读时间需要 2 分钟。

hot3.png

/**

 * 功能:给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序。

 */

 

 

  1. /**  
  2.  * 问题:如果将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间。  
  3.  * 思路:将元素插入数组A的末端。  
  4.  *   
  5.  * 注意:在处理完B的元素之后,不需要复制A的剩余元素,因为那些元素原本就在A中。  
  6.  *  a  
  7.  *  b  
  8.  *  lastA  
  9.  *  lastB  
  10.  */  
  11. public static void merge(int[] a,int[] b,int lastA,int lastB){  
  12.     int indexA=lastA-1;  
  13.     int indexB=lastB-1;  
  14.     int indexMerged=lastA+lastB-1;  
  15.       
  16.     while(indexA>=0&&indexB>=0){  
  17.         if(a[indexA]>b[indexB]){  
  18.             a[indexMerged]=a[indexA];  
  19.             indexMerged--;  
  20.             indexA--;  
  21.         }else{  
  22.             a[indexMerged]=a[indexB];  
  23.             indexMerged--;  
  24.             indexB--;  
  25.         }  
  26.     }  
  27.       
  28.     while(indexB>=0){  
  29.         a[indexMerged]=a[indexB];  
  30.         indexMerged--;  
  31.         indexB--;  
  32.     }  
  33.       

转载于:https://my.oschina.net/u/2822116/blog/792610

你可能感兴趣的文章
vc++中如何让控制台程序不弹出DOS窗口
查看>>
ThinkpadR61-7755BH1安装Mac Leopard10.5.2
查看>>
python 验证数据类型函数
查看>>
每天一个linux命令(26):用SecureCRT来上传和下载文件
查看>>
在读iOS官方文档时,里面有很多你不懂的单词,不要担心
查看>>
Fedora 17: Grub Rescue
查看>>
不是每个在你身上拉屎的都是你的敌人
查看>>
Linq补漏笔记二:Linq语言技术基础
查看>>
#pragma once
查看>>
node.js打开浏览器
查看>>
四、Oracle的复杂查询
查看>>
logback高级特性一
查看>>
超棒的自定义超酷滚动条jQuery插件 - Perfect Scrollbar
查看>>
进程组 会话组 控制终端
查看>>
Maclean答网友问:深入进阶学习Oracle数据库的规划
查看>>
LINUX下CDT和EDT时区的切换
查看>>
[Android] 备份手机上的超级终端、VIM
查看>>
读写分离,就该这么改进
查看>>
【算法和数据结构】_1_排序算法_1
查看>>
Android学习笔记38:Android四大组件之Activity
查看>>