是否在任何地方使用斐波納契堆?我環顧四周,找到了相關問題的答案(見下文),但實際上沒有什麼能夠回答這個問題。Fibonacci堆或Brodal隊列在實踐中使用嗎?
- There are good implementations of Fibonacci heaps out there, including in standard libraries such as Boost C++.事實上,這些庫包含斐波那契堆表明它們必須在某處有用。
- 我們知道斐波那契堆的某些條件需要在實踐中加快實現:「to benefit from Fibonacci heaps in practice, you have to use them in an application where decrease_keys are incredibly frequent」; 「For the Fibonacci Heap to really shine, you need either of the following cases: a) Expensive comparisons: Fib Heaps minimize the number of comparisons required to organize the data. b) The majority of operations is updateKey/insert/delete. As Fibonacci Heaps 'group' the updates together until the next extractMin, the larger the 'batch', the more efficient it gets.」
- There is a data structure called a "Brodal Queue" which I'm not sure I'd heard of before that seems to have time complexity behaviors at least as good as Fibonacci heaps.Here是一個很好的表格,可以比較不同堆棧的各種操作的時間複雜度。
- 在a question about whether there are any applications of Fibonacci or binomial heaps,回答者只給出了二項堆的例子。
關於近似算法的重點。當問題變得足夠大以至於原則上可以從這些奇特的數據結構中獲益時,您可能願意採取一種近似方法,此時該方法會更快。 – kuzzooroo