ホームページ > Java > &#&はじめる > Javaで順序付けされた配列をマージする効率的な方法は何ですか

Javaで順序付けされた配列をマージする効率的な方法は何ですか

王林
リリース: 2020-12-14 16:00:49
転載
2183 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート