この記事の例は、Javaソートアルゴリズムの概要の合併と並べ替えを示しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
マージ操作(マージ)は、合併アルゴリズムとも呼ばれ、シーケンス操作にソートされた2つのシーケンスをマージすることを指します。高速ソートと同様に、Javaで合併したものの実装を見てみましょう。
マージソート(マージ)は、2つ(またはそれ以上)以上の順序付けテーブルを新しい注文にマージすることです。つまり、シーケンスをいくつかのシーケンスに分割し、その後の各シーケンスは秩序です。次に、順序シーケンスを全体的な順序に結合します。
マージソートは、合併操作に基づいて効果的なソートアルゴリズムです。このアルゴリズムは、Divide and Conquerの非常に典型的なアプリケーションです。 既存の後続のシーケンスをマージして、完全に秩序あるシーケンスを取得します。つまり、各サブシーケンスのシーケンスは秩序です。 2つの順序付けられたテーブルが2ロードと呼ばれる秩序あるテーブルにマージされている場合。
マージのソートアルゴリズムは、O(n)の余分なスペースが必要です。
働く原則:
1。2つの並べ替えられたシーケンスのサイズを使用するためにスペースを適用します
2。2つのポインターを設定すると、初期位置はそれぞれ2つのソートされたシーケンスの開始位置です。
3。2つのポインターを指している要素を比較し、合併スペースの比較的小さな要素を選択し、ポインターを次の場所に移動します
4.ポインターがシーケンスエンドに達するまでステップ3を繰り返します
5。他のシーケンスの残りのすべての要素を合併シーケンスのテールに直接コピーします
コード実装:
/////////// public void mergesort(){long [] workspace = new long [nelems]; []ワークスペース、int lowerbound、int upperbound){lowerbound == return;} Mid+ 1、上限); ; int mid = highptr -1; +] = thearray [lowptr ++];} else {workspace [j ++] = thearray [highptr ++];} while(lowptr <= mid){workspace [j ++] = thearray [lowptr ++]; } while(highptr <= upp erbound){workspace [j ++] = thearray [highptr ++];} for(j = 0; j <n; j ++){thearray [lowerbound+j] = workspace [j ];}}
マージのソートは、比較的安定したソートです。入力の順序では、他の情報が可能な限り有利であることを要求することが重要です。
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。