Fibonacci heaps and their uses in improved network optimization algorithms
- 1 July 1987
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 34 (3) , 596-615
- https://doi.org/10.1145/28869.28874
Abstract
In this paper we develop a new data structure for implementing heaps (priority queues). Our structure, Fibonacci heaps (abbreviated F-heaps ), extends the binomial queues proposed by Vuillemin and studied further by Brown. F-heaps support arbitrary deletion from an n -item heap in O (log n ) amortized time and all other standard heap operations in O (1) amortized time. Using F-heaps we are able to obtain improved running times for several network optimization algorithms. In particular, we obtain the following worst-case bounds, where n is the number of vertices and m the number of edges in the problem graph: O ( n log n + m ) for the single-source shortest path problem with nonnegative edge lengths, improved from O ( m log ( m/n +2) n ); O ( n 2 log n + nm ) for the all-pairs shortest path problem, improved from O ( nm log ( m/n +2) n ); O ( n 2 log n + nm ) for the assignment problem (weighted bipartite matching), improved from O ( nm log ( m/n +2) n ); O ( mβ ( m, n )) for the minimum spanning tree problem, improved from O ( m log log ( m/n +2) n ); where β ( m, n ) = min { i | log ( i ) n ≤ m/n }. Note that β ( m, n ) ≤ log * n if m ≥ n . Of these results, the improved bound for minimum spanning trees is the most striking, although all the results give asymptotic improvements for graphs of appropriate densities.Keywords
This publication has 20 references indexed in Scilit:
- Efficient algorithms for graphic matroid intersection and parityPublished by Springer Nature ,2005
- Efficient algorithms for finding minimum spanning trees in undirected and directed graphsCombinatorica, 1986
- On the History of the Minimum Spanning Tree ProblemIEEE Annals of the History of Computing, 1985
- Efficient algorithms for a family of matroid intersection problemsJournal of Algorithms, 1984
- A note on finding optimum branchingsNetworks, 1979
- Implementation and Analysis of Binomial Queue AlgorithmsSIAM Journal on Computing, 1978
- Efficient Algorithms for Shortest Paths in Sparse NetworksJournal of the ACM, 1977
- Finding Minimum Spanning TreesSIAM Journal on Computing, 1976
- Theoretical Improvements in Algorithmic Efficiency for Network Flow ProblemsJournal of the ACM, 1972
- A note on two problems in connexion with graphsNumerische Mathematik, 1959