フィボナッチヒープでは、すべての操作分析のために、性質上償却されます。二項ヒープの場合のように、通常の分析ができないのはなぜですか?フィボナッチヒープの償却分析はなぜですか?
答えて
バイナリヒープでは、各操作は特定の最悪の場合のパフォーマンスで動作することが保証されています。挿入は時間O(log n)を超えることはありません。マージは時間O(log n + log m)以上かかることはありません。したがって、二項ヒープの効率を分析する場合、従来のアルゴリズム分析。
ここで、償却分析を行うときにのみ明らかになる、2項ヒープのいくつかのプロパティがあります。たとえば、ヒープが最初は空であると仮定して、2項ヒープへの連続したn回の挿入のコストはいくらですか?この場合、償却された挿入コストはO(1)であり、n個の挿入を行う総コストはO(n)であることを示すことができます。その意味で、従来の分析の上で償却分析を使用すると、より慎重な最悪の場合の分析から最初に生じたよりも、データ構造についてのより多くの洞察が明らかになります。
フィボナッチヒープは、償却された意味で最もよく分析されます。なぜなら、多くの操作での最悪の場合の境界が実際にはそれほど大きくなくても(たとえば、削除最小または減少キー時間はΘ(最悪の場合))、フィボナッチヒープは一連の操作の間に優れた償却性能を有する。個々のdelete-minはΘ(n)時間かかるかもしれませんが、一連のm delete-minsがΘ(m log n)時間以上かかることは決してありません。
しかしフィボナッチヒープは、最悪の場合よりもむしろ償却された意味で効率的であるように特別に設計されています。彼らは最初にDijkstraとPrimのアルゴリズムをスピードアップするために考案されました。nノードヒープ上でm個の減少キーとn個の削除を実行するのに要したすべてのコストが設計上の目標であったため、設計者はフィボナッチヒープを最悪の場合に効率的にする。
- 1. バイナリカウンタ償却分析について
- 2. 償却分析 - 正しいアプローチ?
- 3. 償却後の分析:旅行の割合を調べる
- 4. ダイナミック配列リサイズの償却解析
- 5. std :: vector挿入の償却解析
- 6. ハッシュテーブルO(1)償却またはO(1)平均償却?
- 7. は、減価償却mutate_
- 8. Google Chrome Flash減価償却
- 9. フィールド追加Netsuite償却スケジュール
- 10. アップデートにmysql_connect()を償却
- 11. VB減価償却額
- 12. TensorFlow:SKCompat減価償却警告
- 13. app.yamlはappengineのjavaで償却されますか?
- 14. フィボナッチヒープにカスケードカットが必要なのはなぜですか?
- 15. ローン償却では最後の商品のみが返却されます。
- 16. 動的配列の償却時間
- 17. App Engineに適用される配賦(およびパーセンタイル)の償却を償却する?
- 18. put_block_blob_from_pathは償却されていますか?
- 19. 償却されたNSNibLoadingメソッド(loadNibFile :, loadNibNamed :,など)の代替品ですか?
- 20. VBAコード償却。さまざまなワークブックの列ヘッダーの変更
- 21. ThreeHS setHSL()は償却されましたか?
- 22. 結果の異なる償却スケジュール計算
- 23. std :: vector :: resizeとstd :: vector :: push_backで償却する
- 24. 私は私の減価償却のコードを更新したいと思い最新バージョン(減価償却されない)
- 25. Swift 2からSwift 3に償却されたコード
- 26. Swift 3とAVCaptureDeviceの減価償却、カメラ名を探すとき
- 27. O(1)償却時間でデキューできるスタックを設計しますか?
- 28. Scikit-learnチュートリアルでは、減価償却のエラーが表示されます。
- 29. Phpmyadminの減価償却通知エラーの取得
- 30. Goでappend()を償却された一定時間実行しますか?
私は私の答えを得た、それはまた、根っこの木々の怠惰な統合です – Moody