這篇文章主要介紹了java如何合并有序數(shù)組,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、福田網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為福田等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
我們先來看看原題目:
/** * ClassName: MergeSortArray
* Function: 合并有序數(shù)組
* [1, 2, 2, 5] * [3, 4, 7, 8, 9] * * */
思路分析:
雙指針移動從前往后的比較,然后把剩余的數(shù)據(jù)再復(fù)制到合并數(shù)組里,其實這也是歸并排序的最核心的代碼,歸并排序(先拆分后合并)分而治之中治的環(huán)節(jié)。
實現(xiàn)代碼:
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]); } }
運行結(jié)果:
1 2 2 3 4 5 7 8 9
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享java如何合并有序數(shù)組內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!