私のクラスの講義スライドにはヒープがあり、deleteMin()というメソッドがあります。 これは、ヒープの最小値を削除します。そしてそれはO(logn)が必要だと言います。なぜヒープのdeleteMinにO(logn)が必要ですか?
これはわかりません。 ヒープ構造では、ヒープが "Upheap"と "Downheap"と呼ばれる操作を行うため、最小値は常にツリーのルートにあります。子ノードが親ノードの値よりも小さい場合、常に親ノードとスワップします。これは、ツリーのルートが常に最小値を持つことを意味します。私は、最小値を見つけて削除するときにその値を取ることができると思います。これはO(1)だけです。
しかし、なぜO(logn)と表示されますか?
...しかし、現在のルートを削除するときに新しいルートを見つけるにはどうすればよいですか?あなたはO(1)でそれをすることはできません。 – Dukeling
'O(1)'で 'find-min'操作をすることはできますが、' O(1) 'では' delete-min'を実行することはできません。 – DAle