大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java合并兩個排序數組

Java合并兩個排序數組

更新時間:2022-07-08 11:54:02 來源:動力節點 瀏覽1637次

java兩個數組合并排序是什么?動力節點小編給大家舉例說明。

問題陳述

給定兩個大小為N和M的數組排序A[]和B[]。任務是以非遞減順序將兩個數組合并為一個數組。

例子:

輸入: A[] =[3, 9, 10, 18, 23], B[] = [5, 12, 15, 20, 21, 25]

輸出: [3, 5, 9, 10, 12, 15, 18, 20, 21, 23, 25]

解釋:合并后的數組按排序順序包含兩個數組中的所有元素。

輸入: A[] = [1, 5], B[] = [4, 6, 7]

輸出: [1, 4, 5, 6, 7]

插入和排序方法

最幼稚的方法是簡單地將一個數組的元素合并到另一個數組中并對結果數組進行排序。

公共無效合并(int [] nums1,int m,int [] nums2,int n){
        for (int i = 0; i < n; i++) {
            nums1[i + m] = nums2[i];
        }
        Arrays.sort(nums1);
    }

合并排序方法

這里要注意的關鍵思想是兩個數組都是排序的。因此,利用這一事實,我們可以應用類似于歸并排序技術的方法。

創建一個大小為 N + M 的輔助數組,并在此數組中插入合并元素。

讓我們通過一個例子來理解這種方法:

算法

創建一個大小為N + M的輔助數組。

放入兩個指針i和j并將它們初始化為 0。

指針 i指向第一個數組,而指針 j指向第二個數組。

使用指針同時遍歷兩個數組,并在兩個數組中選擇最小的元素并插入到輔助數組中。

增加指針。

遍歷后,返回合并后的數組。

Java 實現

公共靜態無效mergeArrays(int [] arr1,int [] arr2,int n1,
  int n2,int [] arr3){ 
  int i = 0,j = 0,k = 0;
  while (i < n1 && j < n2) { 
    if (arr1[i] < arr2[j]) 
      arr3[k++] = arr1[i++]; 
    否則
      arr3[k++] = arr2[j++]; 
  }
  而 (i < n1) 
    arr3[k++] = arr1[i++];  
  而 (j < n2) 
    arr3[k++] = arr2[j++]; 
}

以上就是關于“Java合并兩個排序數組”的介紹,大家如果對此比較感興趣,想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容細致全面,很適合沒有基礎的小白學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 中文字幕伦理聚合第一页 | 天天射天天搞 | 欧美成人欧美激情欧美风情 | 国产乱子伦手机在线 | 亚洲精品综合久久 | 国产亚洲精品网站 | 国内精品久久久久久不卡影院 | 青青青久在线视频免费观看 | 久久亚洲人成国产精品 | 国产夫妻久久线观看 | 国产a级一级久久毛片 | 国产成人在线视频播放 | 91成人啪国产啪永久地址 | 欧美激情_区二区三区 | 国产又色又爽又黄又刺激18 | 美国一级毛片片免费 | 91一区| 免费爱爱| 在线观看日本一区 | 午夜毛片在线观看 | 97超在线视频 | 久久精品国产国语对白 | 色欧美hdvideosxs4k | 欧美三级纯黄版 | 久久99国产乱子伦精品免 | 99九九99九九九视频精品 | 欧美一区二区在线观看 | 欧美日韩亚洲m码色帝国 | 美女黄频网站 | 最新欧美一级视频 | 国产一区曰韩二区欧美三区 | 亚洲成人网页 | 在线播放heyzo北条麻妃 | 一级欧美视频 | 九九99视频在线观看视频观看 | 一区二区三区www | 全免费a级毛片免费看视频免 | 国产香蕉精品视频在 | 日本中文一区 | 国产一级做性视频 | 日韩二三区 |