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

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

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微福视频 | 嫩草影院永久入口在线观看 | 亚1洲二区三区四区免费 | 99在线免费观看视频 | 9久re在线观看视频精品 | 羞羞在线观看 | 国产精品福利久久2020 | 欧美日韩久久中文字幕 | 洗濯屋H纯肉动漫在线观看 武侠艳妇屈辱的张开双腿 午夜在线观看免费观看 视频 | 毛片区| 大色综合| 99夜色| 亚洲精品午夜级久久久久 | 2019国内精品久久久久久 | 国产欧美久久久精品影院 | 日本护士xxxx视频免费 | yellow视频在线观看 | 男男gaygays国内 | 日日操综合| 欧美在线视频 一区二区 | 国产日韩欧美在线一二三四 | 波多野 在线| 欧美日韩视频一区三区二区 | 手机在线观看网站免费视频 | 国产在线观看一区 | 痴mu动漫成年动漫在线观看 | 成年人网站免费在线观看 | 色综合久久中文字幕综合网 |