【ひーぷ】
ヒープ(データ構造) とは?
最終更新:
💡 「最大値・最小値」を常に一番上にキープする木構造
親子の間で値の大小関係を保つ木のデータ構造。代表的な二分ヒープは完全二分木を使い、最大値か最小値が根に来るようにする。優先度付きキューの実装に使われる。
📌 このページのポイント
ソート済み配列と何が違うの?
追加や取り出しは速い?
好きな値を探して削除するのもO(log n)?
その値がどこにあるかを探す処理は別だよ。普通のヒープを順に調べれば、最悪O(n)かかる。削除対象の位置を管理する仕組みを加える実装もあるけれど、根の取り出しと任意要素の検索を混同しないでね
配列でどうやって木を表すの?
どんな場面で使うの?
📖 おまけ:英語の意味
「Heap」 = 山積み
💬 Heap(積み上げたもの)。一番上に最大/最小の要素が積まれているイメージだよ