這篇文章主要介紹了java如何合并有序數組,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
我們先來看看原題目:
/** * ClassName: MergeSortArray <br/> * Function: 合并有序數組<br/> * [1, 2, 2, 5] * [3, 4, 7, 8, 9] * * */
思路分析:
雙指針移動從前往后的比較,然后把剩余的數據再復制到合并數組里,其實這也是歸并排序的最核心的代碼,歸并排序(先拆分后合并)分而治之中治的環節。
實現代碼:
public static int[] mergeSortArray(int[] a, int[] b){ int length2 = a.length, length3 = b.length; int[] merge = new int[length2 + length3]; int i = 0, j = 0, k = 0; while(i < length2 && j < length3){ if(a[i] <= b[j]){ merge[k++] = a[i++]; }else{ merge[k++] = b[j++]; } } while(i < length2){ merge[k++] = a[i++]; } while(j < length3){ merge[k++] = b[j++]; } return merge; } public static void main(String[] args) { int[] a = {1, 2, 2, 5}; int[] b = {3, 4, 7, 8, 9}; int[] merge = mergeSortArray(a, b); for(int i = 0; i < merge.length; i++){ System.out.println(merge[i]); } }
運行結果:
1 2 2 3 4 5 7 8 9
感謝你能夠認真閱讀完這篇文章,希望小編分享java如何合并有序數組內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。