ヒープ

提供:APCC
2021年12月15日 (水) 10:10時点におけるRamdos (トーク | 投稿記録)による版 (ページの作成:「'''ヒープ'''とは、「親は自分よりも小さい」ことが保証されている木構造のことである。 ==概要== すべての要素について、親は自分よりも小さいことが保証されている。最小値を取り出したいときは、根にあたる要素を抜き取り、根の子であった要素のうち小さい方を新しい根とする。 値を追加したいときは、適当な要素の子とし、親子の大小関…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

ヒープとは、「親は自分よりも小さい」ことが保証されている木構造のことである。

概要

すべての要素について、親は自分よりも小さいことが保証されている。最小値を取り出したいときは、根にあたる要素を抜き取り、根の子であった要素のうち小さい方を新しい根とする。 値を追加したいときは、適当な要素の子とし、親子の大小関係が正しくなるまでスワップする。

平衡が保たれるよう適切に実装することで、最小値の取り出しと値の追加がともにO(logN)時間でできるようになる。

用途

いわゆる優先度付きキューと呼ばれるものがこれにあたる。優先度のついた行動フローを順次行うAIの作成などに用いることができる。

関連項目