Gli heap di Fibonacci sono utilizzati in pratica ovunque? Ho dato un'occhiata a SO e ho trovato risposte a domande correlate (vedi sotto), ma nulla in realtà risponde alla domanda.Gli heap di Fibonacci o le code Brodal sono utilizzati in pratica ovunque?
- There are good implementations of Fibonacci heaps out there, including in standard libraries such as Boost C++. Il fatto che queste librerie contengono cumuli di Fibonacci suggerisce essere il fatto che essi devono essere utili in qualche luogo.
- Sappiamo che alcune condizioni devono essere soddisfatte affinché un heap di Fibonacci sia più veloce nella pratica: "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 è un bel tavolo con un confronto di complessità temporali per varie operazioni per diverse varietà di cumuli.
- Su a question about whether there are any applications of Fibonacci or binomial heaps, i rispondenti hanno fornito solo esempi di cumuli binomiali.
Ottimo punto su algoritmi di approssimazione. Nel momento in cui un problema diventa abbastanza grande da poter beneficiare in linea di principio di una di queste fantasiose strutture di dati, probabilmente sei disposto a fare un'approssimazione, che a quel punto sarà molto più veloce. – kuzzooroo