合併兩個有序數組成乙個有序陣列

2021-09-12 12:25:14 字數 702 閱讀 6156

題目:有兩個陣列a和b,將它們合併成陣列c,需要c也是有序陣列。

有兩種實現思路:

定義乙個新陣列,長度為兩個陣列長度之和,將兩個陣列都copy到新陣列,然後排序。

給兩個陣列分別定義乙個下標,最大長度是陣列長度減一,按位迴圈比較兩個陣列,較小元素的放入新陣列,下標加一(注意,較大元素對應的下標不加一),直到某乙個下標超過陣列長度時退出迴圈,此時較短陣列已經全部放入新陣列,較長陣列還有部分剩餘,最後將剩下的部分元素放入新陣列,大功告成。

public static int mergelist(int a, int b) 

if (b.length==0)

int result = new int[a.length+b.length];//定義乙個新陣列,長度為兩個陣列長度之和

int i=0, j=0, k=0; //i:a陣列下標 j:b陣列下標 k:新陣列下標

//按位迴圈比較兩個陣列,較小元素的放入新陣列,下標加一(注意,較大元素對應的下標不加一),直到某乙個下標等於陣列長度時退出迴圈

while (i}

//此時較短陣列已經全部放入新陣列,較長陣列還有部分剩餘,最後將剩下的部分元素放入新陣列

while (i < a.length)

while (j < b.length)

return result;

}

演算法 合併兩個有序數組成乙個有序陣列

最近看到乙個演算法題目,覺得很有意義,就自己查資料,摸索著自己實現了 特記錄一下。題目 有兩個陣列a和b,將它們合併成陣列c,需要c也是有序陣列。有兩種實現思路 1.定義乙個新陣列,長度為兩個陣列長度之和,將兩個陣列都copy到新陣列,然後排序。2.給兩個陣列分別定義乙個下標,最大長度是陣列長度減一...

兩個有序陣列合併為乙個有序陣列

思想 先依次比較兩個陣列,按照小的就傳入新的陣列。當這次比較完之後可能有乙個陣列的長度很長,留下一些陣列,然後在新陣列的末尾插入即可。1 class arraysort 2else 1920 後面連個while迴圈是用來保證兩個陣列比較完之後剩下的乙個陣列裡的元素能順利傳入 21 while i a...

兩個有序陣列合併成乙個有序陣列

public class arraysort int b int c mergearray a,b for int n c 合併陣列 public static int mergearray int a int b else return flag package com.bi 兩個有序陣列合併成乙...