ホームページ  >  記事  >  ヒープソート

ヒープソート

(*-*)浩
(*-*)浩オリジナル
2019-06-03 09:46:012180ブラウズ

ヒープ ソート

ヒープ ソートは、ヒープのデータ構造を使用して設計されたソート アルゴリズムです。ヒープ ソートは選択ソートです。最悪の場合も最良の場合も、平均時間計算量は O です(nlogn)、これも不安定なソートです。まず、ヒープ構造を簡単に理解しましょう。

ヒープソート

ヒープ

ヒープは、次のプロパティを持つ完全なバイナリ ツリーです: 各ノードの値は以上です。ノードの値はビッグトップヒープと呼ばれ、各ノードの値はその左右の子ノードの値以下であり、スモールトップヒープと呼ばれます。

推奨コース: PHP チュートリアル

#以下に示すように:

ヒープソート

#同時に、ヒープ内のノードにレイヤーごとに番号を付け、この論理マップを作成します。構造 配列では次のようになります

ヒープソート

#配列は論理的にはヒープ構造です。ヒープの定義を記述するために簡単な式を使用します:

大きいトップ ヒープ: arr[i] >= arr[2i 1] && arr[i] >= arr[2i 2]

小さいトップ ヒープ: arr[i]

ヒープソートの基本的な考え方は次のとおりです:

ソートされるシーケンスを構築します。 big top Heap では、このときシーケンス全体の最大値はヒープの先頭のルート ノードになります。それを最後の要素と交換すると、最後の値が最大値になります。次に、残りの n-1 個の要素をヒープに再構築し、n 個の要素のうち次に小さい値が取得されるようにします。これを繰り返し実行すると、順序付けられたシーケンスが得られます。

以上がヒープソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:OpenCVとは次の記事:OpenCVとは