首頁 > Java > Java入門 > java合併有序數組的高效方法是什麼

java合併有序數組的高效方法是什麼

王林
發布: 2020-12-14 16:00:49
轉載
2159 人瀏覽過

java合併有序數組的高效方法是什麼

我們先來看看原題目:

(學習影片分享:java教學影片

/**
 * 
 ClassName: MergeSortArray <br/>
 * 
 Function: 合并有序数组<br/>
 *   [1, 2, 2, 5]
 *   [3, 4, 7, 8, 9]
 *
 *
 */
登入後複製

想法分析:

雙指標移動從前往後的比較,然後把剩餘的資料再複製到合併數組裡,其實這也是歸併排序的最核心的程式碼,歸併排序(先拆分後合併)分而治之中治的環節。

實作程式碼:

public static int[] mergeSortArray(int[] a, int[] b){
        int length1 = a.length, length2 = b.length;
        int[] merge = new int[length1 + length2];
        int i = 0, j = 0, k = 0;
        while(i < length1 && j < length2){
            if(a[i] <= b[j]){
                merge[k++] = a[i++];
            }else{
                merge[k++] = b[j++];
            }
        }
        while(i < length1){
            merge[k++] = a[i++];
        }
        while(j < length2){
            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入門教學

以上是java合併有序數組的高效方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板