データ構造 / Binary Heap(二分ヒープ)

完全二分木で
優先度を管理する。

ヒープは親子の大小関係だけを保つ構造です。最小値・最大値の取り出しが速く、優先度付きキューの実装に使われます。

データ構造基礎教材可視化

目次

このページの目次

このページでわかること

先に知っておくポイント

1. 何が制約か
2. どこが速いか
3. どこが遅いか

概要

概要

ヒープは親子の大小関係だけを保つ構造です。最小値・最大値の取り出しが速く、優先度付きキューの実装に使われます。

考え方

基本操作

push into last position
bubble up
pop root
move last to root and bubble down

要点

要点まとめ

Peek

O(1)

Push

O(log n)

Pop

O(log n)

用途

priority queue

補足

向いている場面と注意点

BST との違い

左右全体の順序までは保証しません。

強み

根に最小または最大が来るので取り出しが速いです。

教え方

木と配列の対応をセットで見せます。

動きで確認

動きを見てたしかめる

ここでは「何が制約か」を見ながら、上で読んだ内容を動きと結びつけます。

root挿入中

次に見る

次に見るページ

比較すると違いがわかりやすいページを先に置いています。