【ひーぷ】
ヒープ とは?
最終更新:
💡 「一番大きい(小さい)もの」を常にトップに置く
最大値や最小値を取り出すために使うデータ構造。代表的な二分ヒープは、親の値が子の値以上(または以下)という条件を満たす完全二分木で、優先度付きキューの実装に使われる。
📌 このページのポイント
普通のソートと何が違うの?
ソートは全体を順に並べるけれど、ヒープは先頭で最大値や最小値を取り出しやすく保つよ。二分ヒープでは親と子の大小関係を守る。同じ親を持つ子同士や、離れた枝の値まで順番に並べる必要はないんだ
木の形にも決まりがあるの?
優先度付きキューって何?
追加した順ではなく、優先度で次の要素を取り出す仕組みだよ。ヒープはその実装方法の一つ。根を取り出したり要素を追加したりした後には、親子の条件を満たすよう位置を調整するんだ
ヒープソートって速いの?
メモリ管理の「ヒープ領域」とは別物?
まとめ:ざっくりこれだけ覚えればOK!
「ヒープ」って出てきたら「最大値や最小値を取り出しやすく保つデータ構造」と思えばだいたいOK!
📖 おまけ:英語の意味
「Heap」 = 山積み
💬 英語では山積みという意味だよ。ここではデータ構造を指し、メモリー管理のヒープとは意味が違うんだ