Raramente ne useresti uno nella vita reale. Credo che lo scopo dell'heap di Fibonacci fosse quello di migliorare il tempo di esecuzione asintotico dell'algoritmo di Dijkstra. Potrebbe darti un miglioramento per input molto grandi, ma la maggior parte delle volte, un semplice heap binario è tutto ciò di cui hai bisogno.
Da Wiki:
Sebbene il tempo totale di una sequenza di operazioni iniziano una struttura vuota è delimitata dai limiti indicati sopra, alcuni (pochissimi) operazioni nella sequenza può Take molto lungo per completare (in particolare eliminare e cancellare minimo hanno lineare tempo di esecuzione nel peggiore dei casi). Per , questo heap di Fibonacci e altre strutture di dati ammortizzate potrebbero non essere appropriato per i sistemi in tempo reale.
L'heap binario è una struttura di dati che può essere utilizzata per trovare rapidamente il valore massimo (o minimo) in un insieme di valori. Viene utilizzato nell'algoritmo di Dijkstra (percorso più breve), nell'algoritmo di Prim (albero di spanning minimo) e nella codifica di Huffman (compressione dei dati).
fonte
2010-09-22 09:24:00
Wow, tu vivi e impara. Non sapevo nemmeno che Fib .. esistessero gli heap. Roba forte. – PurplePilot
"Uso del mondo reale" sembra fare la domanda sbagliata, simile a "quali sono gli usi del mondo reale degli array?" –
Tutti conoscono l'uso reale degli array! – devnull