回答編集履歴
1
追記
answer
CHANGED
@@ -4,4 +4,8 @@
|
|
4
4
|
|
5
5
|
ヒープは随時追加・削除される大量の順序付きデータを整理して高速に検索したい時に使います。
|
6
6
|
|
7
|
-
例えば、データの中から最も小さいものを頻繁に知りたい場合、知りたい時にいちいち線形検索していたのでは時間がかかります。また新しいデータが挿入されたり既存のデータが削除されるたびにソートしていても時間がかかります。バイナリサーチが可能なら検索は高速になりますが、挿入・削除でのデータの移動に時間がかかります。しかし、ヒープを使えば高速にデータを検索・挿入・削除することができます。
|
7
|
+
例えば、データの中から最も小さいものを頻繁に知りたい場合、知りたい時にいちいち線形検索していたのでは時間がかかります。また新しいデータが挿入されたり既存のデータが削除されるたびにソートしていても時間がかかります。バイナリサーチが可能なら検索は高速になりますが、挿入・削除でのデータの移動に時間がかかります。しかし、ヒープを使えば高速にデータを検索・挿入・削除することができます。
|
8
|
+
|
9
|
+
引用した優先度付きキュー、グラフ問題が具体例になります。ヒープはデータを整理するための構造ですが、人間の頭ではそのままのヒープを見ても一目瞭然とはなりません。そこで人間の目に触れる時にはヒープそのものではなく、ヒープで保存されているデータをさらに加工して出力することになります。
|
10
|
+
|
11
|
+
つまり内部で使われている構造なので、直接目にすることは無いでしょう。
|