一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java解一個比較特殊的數組合并題

java解一個比較特殊的數組合并題

2019-11-23 17:32Java教程網 JAVA教程

這篇文章主要介紹了java解一個比較特殊的數組合并題,需要的朋友可以參考下

給定兩個排序后的數組A和B,其中A的末端有足夠的空間容納B,編寫一個方法將B合并到A并排序。

拿到這個題后,最直接的想法就是比較A和B中的元素,并按順序插入數組,直到遍歷完A和B中的所有元素。但是這樣做會有一個不好的地方:如果元素的插入位置在數組A的前端,那就必須將原來的數組往后移動。這會增加開銷。但是我們可以使用另外的一種辦法將元素插入數組A的末端。這樣我們不會出現元素移動的情況!代碼如下:
    

復制代碼代碼如下:

/*
  * lastA:a中的實際元素數  lastB:b中的實際元素數 mergeIndex是新數組的實際空間大小
       */
      public static void mergeOrder(int[] a, int[] b, int lastA, int lastB) {
  int indexA = lastA - 1; 
  int indexB = lastB - 1;
  int mergeIndex = lastA + lastB - 1; 
  while (indexA >= 0 && indexB >= 0) {
   if (a[indexA] > b[indexB]) {
    a[mergeIndex] = a[indexA];
    mergeIndex --;
    indexA --;
   } else {
    a[mergeIndex] = b[indexB];
    mergeIndex --;
    indexB --;
   }
  }

  while (indexB >= 0) {
   a[mergeIndex] = b[indexB];
   mergeIndex --;
   indexB --;
  }
 }

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费叼嘿视频 | 色呦呦tv | 513热点网深夜影院影院诶 | 美女隐私部位视频网站 | 精品国产日韩一区三区 | 亚洲 欧美 中文 日韩欧美 | 天海翼黄色三级 | 亚洲AV精品一区二区三区不卡 | 国产欧美视频一区二区三区 | 国产亚洲精品一区久久 | 高h文恩好大好爽 | 添逼逼视频 | 日韩精品视频在线播放 | 国产精品香蕉在线观看不卡 | 国产一区二区三区在线看片 | 免费看60分钟大片视频播放 | 日韩永久在线观看免费视频 | 交换朋友夫妇3中文字幕 | 国产亚洲精品第一综合另类 | 亚洲国产在线观看免费视频 | 草莓视频首页 | 无敌在线视频观看免费 | 思思玖玖 | 精品视频中文字幕 | 91青青草原| 175m美女被网友灌醉啪啪玩脚 | 国内精品久久久久久久 | tobu8中国在线观看免费视频 | 成人免费公开视频 | 99re思思| 四虎影视永久在线 | 久久精品国产免费播放 | 女同69式互添在线观看免费 | 厕所rxxx| 羞羞答答影院在线 | 九九九久久久 | 天天草人人草 | 天天碰夜夜操 | 99色在线播放 | 日韩精品在线一区二区 | 欧美ⅹxxxhd3d|