ヒープソートとは、ヒープツリー (ヒープ) のデータ構造を使用して設計されたソート アルゴリズムのことで、配列の特性を利用して、指定されたインデックスの要素をすばやく見つけることができます。ヒープソートは、補助空間が O(1)、最悪時間計算量が O(nlog2n) の不安定なソート方法です。ヒープソートの平均パフォーマンスは、最悪のパフォーマンスに近くなります。 ヒープソートでは、大きなルートヒープ(または小さなルートヒープ)の最上位レコードのキーワードが ***(または最小)キーワードであるという特徴を利用し、現在の順序付けされていない領域で ***(または最小)キーワードを持つレコードを簡単に選択できるようにします。 (1)大ルートヒープソートを使用する基本的な考え方 ①まず、初期ファイルR[1..n]を大きなルートヒープに構築します。これは、初期の順序付けされていない領域です。 ②次に、レコードR[1](つまりヒープの先頭)を順序なし領域の最後のレコードR[n]と交換し、新しい順序なし領域R[1..n-1]と順序付き領域R[n]を取得し、R[1..n-1].keys≤R[n].keyを満たす。 ③交換後の新しいルートR[1]はヒープ特性に違反する可能性があるため、現在の順序付けられていない領域R[1..n-1]をヒープに調整する必要があります。次に、R[1..n-1]の最後のキーを持つレコードR[1]を、間隔内の最後のレコードR[n-1]と交換します。これにより、新しい順序なし領域R[1..n-2]と順序付き領域R[n-1..n]が得られ、関係R[1..n-2].keys≤R[n-1..n].keysが満たされます。同様に、R[1..n-2]をヒープに調整する必要があります。 … 順序付けされていない領域に要素が 1 つだけになるまで。 (2)ビッグルートヒープソートアルゴリズムの基本操作: ① 初期化操作:初期ヒープとしてR[1..n]を構築する。 ②各ソートラウンドの基本操作:現在の順序なし領域の最上位レコードR[1]をその領域の最後のレコードと交換し、新しい順序なし領域をヒープ(再構築ヒープとも呼ばれる)に調整します。 知らせ: ① ソート操作はn-1回のみで、より大きなn-1個のキーワードを選択することでファイルを昇順にソートすることができます。 ② 小さいルートヒープを使用したソートは、ソート結果が降順になることを除いて、大きいルートヒープを使用した場合と似ています。ヒープ ソートは、直接選択ソートの逆です。ヒープ ソートでは、いつでも、順序付けされていない領域が順序付けされた領域の前にあり、順序付けされた領域は、元のベクトルの末尾から先頭に向かって、ベクトル全体まで徐々に拡張されます。 コード実装:
ヒープはツリーとして表示され、ヒープ内のノードの高さは、ノードからリーフ ノードへの最長の単純な降順パス上のエッジの数として定義できます。ヒープの高さは、ツリーのルートの高さとして定義されます。ヒープ構造に対するいくつかの基本的な操作は、ツリーの高さに比例する時間、O(lgn) で実行されることがわかります。この記事がお役に立てれば幸いです。 【編集者のおすすめ】
|
<<: Java ソートアルゴリズムの概要 (VII): クイックソート
>>: Java ソートアルゴリズムの概要 (V): マージソート
ウェブサイトのランキングは、ウェブサイトの最適化を行うすべての人が最も気にしていることです。しかし、...
人工知能技術は、機械学習、計算統計、さまざまなディープラーニングモデルの使用を通じて主流になりました...
2008年、北京オリンピックのテクノロジーと壮大な雰囲気は世界に深い印象を残しました。 2022年...
近年、視覚システムのセキュリティ評価の研究が徐々に深まっています。研究者は、メガネ、ステッカー、衣服...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
科学技術の継続的な発展により、多くの業界で「ロボット」が使用され、効率が向上するだけでなく、人件費も...
10月26日、「人工知能分野での中国初の上場企業」であるXiaoi RobotがHuazang Un...
本日、張亜琴教授はCNCC 2020で「スマートテクノロジーのトレンド」をテーマに講演しました。デジ...
この時代の変化のスピードは想像を絶します!次から次へと生み出される想像力豊かな革新は、目を見張るほど...
次のプロジェクトに機械学習を取り入れるべき 4 つの理由をご紹介します。 理由その1 – マーケティ...
高速かつ経済的なソートアルゴリズムスペースを無駄にせず、より高速なソートアルゴリズムはありますか?そ...
有名なアニメーション会社ディズニーは、近々人工知能とロボット工学の分野に参入すると発表しました。ディ...
現在、新型コロナウイルスの核酸検査のほとんどは、咽頭ぬぐい液を使って行われている。スマートウォッチを...
[[357279]] WeChat パブリックアカウント: コンピューターとネットワークのセキュリテ...