この記事の例は、Javaソートアルゴリズムの要約の並べ替えを示しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
1991年、スタンフォード大学のコンピューターサイエンス学科のコンピューターサイエンス学部の教授であるロバートW.フレイド、1964年にJ.ウィリアムズが共同で有名なヒープソート(ヒープソート)エッセンスを発明しましたこの記事では、主にJavaをヒープソートに紹介します。
Heapsortとは、パイル(ヒープ)データ構造によって設計されたソートアルゴリズムを指します。これは、配列の特性を使用して、指定されたインデックスの要素をすばやく見つけることができます。スタッキング順序は、不安定な並べ替え方法です。
スタッキング順序では、大きなパイル(または小さなルートパイル)パイルトップレコードのキーワードの最大(または最小)の特性を使用して、現在の無秩序な領域の最大(または最小)キーワードのレコードを単純にします。
(1)大きな山でソートされた基本的なアイデア
firts最初のファイルr [1..n]を大きなルートパイルに構築します。 R [1 .. n-1].keys≤r[n] .keyを満たします
bute新しいルートr [1]は、交換後にヒープの性質に違反する可能性があるため、現在の非秩序領域r [1 .. n-1]はヒープに調整する必要があります。次に、R [1..N-1]のキーワードのキーワードは、新しい無秩序な領域r [1 ..... N-2を取得した間隔で最後のレコードr [n-1]と再び交換されます。 ]そして、整然とした領域r [n-1..n]、そしてそれでも関係を満たしているr [1 ..- .. n-2].keys≤r[n-1..n]。 [1..n-2]ヒープに調整します。
ニンポ
無秩序な領域に1つの要素しかないまで。
(2)大きな根のソートアルゴリズムの基本的な操作:
operiation初期ヒープへのR [1..N]の構築:操作を初期化します。
cullide各並べの基本操作:現在の無秩序な領域でパイルレコードr [1]の最後のレコードを交換し、新しい無秩序な領域をパイル(再構築とも呼ばれます)に調整します。
知らせ:
n-1の並べ替えを行い、大きなn-1キーワードを選択してファイルを順番に増やします。
lootsicが小さな根でソートすることは大きな根に似ていますが、その並べ替えの結果は減少し、整然としています。積み重ね順序とソートの直接選択は反対です。いつでも、無秩序な領域は常に秩序ある領域の前にあり、秩序ある領域は元のベクトルの背面からベクトル全体に徐々に拡大しています。
コード実装:
パブリッククラステスト{public static int [] heap = {10、32、1、9、5、7、0、4、3}; {int i; +) (i = 1; i <index -1; i ++)system.out.printf( "%3s"、heap); void creap(int root、j、j; submp = head [root]のルート値= 0; [j])finish = 1; ; //親ノード=ルート値} public static void heapsort(int i、j、head; ; //スタックのソートを開始します(i = index-1; i> = 1; i ------- {temp = heap; // heapのルート値と最後の値交換heap = head [1]; heap [1] = testheap(1、i); "%3s"、heap [j]); out.println( "");}}}}}
ヒープはツリーと見なすことができ、高さのノードの高さは、ノードから葉のノードの高さまでの最長の単純なドロップパスの数として定義できます。根。ヒープ構造の基本操作のいくつかは、ほとんどがO(LGN)であるツリーの高さに比例していることがわかります。この記事を読んで、私はあなたを助けたいと思っています。
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。