バイナリヒープ可視化ツール
インタラクティブなバイナリ最大ヒープ — 要素を挿入(insert)し、最大値を取り出す(extract-max)操作を、sift-up / sift-downのアニメーションとステップ実行、疑似コード付きで確認できます。すべてブラウザ内で完結します。
疑似コード
Run an operation to see its steps.
Avg · Worst
使い方
- 1 数値を入力してInsertを押すと、その値が正しい位置まで「sift up」していく様子を確認できます。
- 2 Extract Maxを押すと根のノードが削除され、ヒープが「sift down」する様子が表示されます。
- 3 Randomでランダムな値を挿入したり、Clearでヒープを空にしたりできます。
- 4 各操作をステップごとに実行し、ハイライトされる疑似コードを追いながら理解を深められます。
このツールを使う理由
- バイナリ最大ヒープを木構造として視覚的に確認でき、常に最大値が根に位置することが分かります。
- 挿入後のsift-upと取り出し後のsift-downがヒープの性質をどのように回復させるかを観察できます。
- 挿入・取り出しの両方がO(log n)の計算量になる理由 — 木の高さに等しいこと — を理解できます。
- すべてブラウザ内で完結。登録もアップロードも不要です。
よくある質問
バイナリヒープとは何ですか?
バイナリヒープは配列として格納される完全二分木で、すべてのノードがヒープ条件を満たしています。最大ヒープでは各親ノードが子ノード以上の値を持つため最大値が根に位置し、最小ヒープでは各親ノードが子ノード以下の値を持ちます。
ヒープ操作の計算量はどれくらいですか?
挿入と最大値の取り出し(extract-max)はO(log n)です。値を木の高さ分だけ上下に移動させる必要があるためです。最大値の参照(閲覧のみ)はO(1)で行えます。
ヒープはどのように配列に格納されますか?
木構造は暗黙的に表現されます。インデックスiのノードの子は2i+1と2i+2にあり、親は⌊(i−1)/2⌋にあります。ポインタを使う必要はありません。
ヒープは何に使われますか?
優先度付きキュー(priority queue)、ヒープソート、DijkstraアルゴリズムやPrimアルゴリズム、そして残っている要素の中から常に最大値(または最小値)を取り出す必要があるあらゆる処理に使われます。
バイナリヒープ可視化ツール とは?
バイナリヒープ可視化ツールは、バイナリ最大ヒープ — 配列として格納された完全二分木で、すべての親ノードが子ノード以上の値を持つデータ構造 — を可視化します。挿入(insert)後のsift-upと、最大値の取り出し(extract)後のsift-downのプロセスを表示し、常に最大値が根(root)に位置するようにする仕組みを示します。
機能
Insert / extract / peek
insert時のsift-upとルート抽出(extract)時のsift-downをアニメーションで表示します。
計算量
insert / extract: O(log n)。peek: O(1)。build-heap: O(n)。空間計算量: O(n)。
100%プライベート
すべてブラウザ内で完結し、データが外部にアップロードされることはありません。
例
Input
insert 5, 3, 8, 1, 4 (min-heap)
Output
heap array = [1, 3, 8, 5, 4] (root = min = 1)
主な用途
-
1
優先度付きキュー
効率的な優先度付きキューを支えるヒープ構造を確認できます。
-
2
ヒープソートとダイクストラ法
ヒープソートやダイクストラ法で使われる構造を理解できます。
-
3
sift-up/sift-downを学ぶ
各操作の後にヒープ性質がどのように復元されるかを観察できます。
Zerethonのバイナリヒープビジュアライザーは、ブラウザ上でmin-heap(最小ヒープ)またはmax-heap(最大ヒープ)をアニメーション表示し、完全二分木のヒープ性質が復元される様子をinsert(sift-up)とextract(sift-down)の操作で示します。insertとextractはO(log n)、peekはO(1)、配列からのヒープ構築はO(n)で実行され、空間計算量はO(n)です。
- カテゴリ
- アルゴリズム
- 料金
- 無料
- プライバシー
- ブラウザベース
- 登録
- 不要
参考文献
- MIT OCW 6.006 — Introduction to Algorithms (CLRS) — MIT OpenCourseWare
- VisuAlgo — Binary Heap — VisuAlgo (NUS)
- Binary heap — Wikipedia
プライバシー
明記されない限り、データがブラウザの外に送信されることはありません。バイナリヒープ可視化ツール は完全にクライアント側で動作します — サーバーへのアップロードなし、ログなし、入力内容のトラッキングなし。
初めての方へ。Big-O 解析付きのステップバイステップ解説を読む: Data Structures を学ぶ →
関連ツール
バブルソート ビジュアライザー
バブルソートの動きをアニメーションで確認できるツール。ステップ実行や速度調整、カスタム入力データ、比較・交換回数のリアルタイム表示、擬似コードの表示に対応しています。すべてブラウザ内だけで動作します。
ツールを開く挿入ソート(Insertion Sort)ビジュアライザー
挿入ソートをアニメーションで可視化。ステップ実行や速度調整、カスタム入力、比較回数・書き込み回数のリアルタイム表示、疑似コード(pseudocode)表示に対応。すべてブラウザ内で完結します。
ツールを開く選択ソート(Selection Sort)ビジュアライザー
ステップ実行、速度調整、カスタム入力、比較/交換回数のライブカウンター、擬似コードを備えたSelection Sortのアニメーション。すべてブラウザ内だけで完結します。
ツールを開くマージソート ビジュアライザー
マージソートの動きをアニメーションで再現するツールです。ステップ実行、速度調整、独自のデータ入力、比較・書き込み回数のリアルタイム表示、擬似コード表示に対応。すべてブラウザ上だけで動作します。
ツールを開くZerethon Social で作成・共有・成長しよう
無料登録。ポイントを獲得し、実績を集め、世界中のクリエイターとつながりましょう。