Abstract
We introduce the rank-pairing heap, a heap (priority queue) implementation that combines the asymptotic efficiency of Fibonacci heaps with much of the simplicity of pairing heaps. Unlike all other heap implementations that match the bounds of Fibonacci heaps, our structure needs only one cut and no other structural changes per key decrease; the trees representing the heap can evolve to have arbitrary structure. Our initial experiments indicate that rank-pairing heaps perform almost as well as pairing heaps on typical input sequences and better on worst-case sequences.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Brodal, G.: Worst-case efficient priority queues. In: SODA, pp. 52–58 (1996)
Brown, M.R.: Implementation and analysis of binomial queue algorithms. SIAM J. Comput., 298–319 (1978)
Chan, T.M.: Quake heaps: a simple alternative to Fibonacci heaps (2009)
Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959)
Driscoll, J.R., Gabow, H.N., Shrairman, R., Tarjan, R.E.: Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation. Comm. ACM 31(11), 1343–1354 (1988)
Edmonds, J.: Optimum branchings. J. Res. Nat. Bur. Standards B71, 233–240 (1967)
Elmasry, A.: Violation heaps: A better substitute for Fibonacci heaps. CoRR (2008)
Elmasry, A.: Pairing heaps with O(loglogn) decrease cost. In: SODA, pp. 471–476 (2009)
Fredman, M.L.: On the efficiency of pairing heaps and related data structures. J. ACM 46(4), 473–501 (1999)
Fredman, M.L., Sedgewick, R., Sleator, D.D., Tarjan, R.E.: The pairing heap: a new form of self-adjusting heap. Algorithmica 1(1), 111–129 (1986)
Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. In: FOCS, pp. 338–346, 24–26 (1984)
Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. J. ACM 34(3), 596–615 (1987)
Gabow, H.N., Galil, Z., Spencer, T.H., Tarjan, R.E.: Efficient algorithms for finding minimum spanning trees in undirected and directed graphs. Combinatorica 6(2), 109–122 (1986)
Høyer, P.: A general technique for implementation of efficient priority queues. In: ISTCS, pp. 57–66 (1995)
Kaplan, H., Shafrir, N., Tarjan, R.E.: Meldable heaps and boolean union-find. In: STOC, pp. 573–582 (2002)
Kaplan, H., Tarjan, R.E.: New heap data structures. Technical Report TR-597-99, Princeton Univ. (1999)
Kaplan, H., Tarjan, R.E.: Thin heaps, thick heaps. ACM Trans. Alg. 4(1), 1–14 (2008)
Knuth, D.E.: The Art of Computer Programming. Fundamental Algorithms, vol. 1. Addison-Wesley, Reading (1973)
Knuth, D.E.: The Art of Computer Programming. Sorting and Searching, vol. 3. Addison-Wesley, Reading (1973)
Liao, A.M.: Three priority queue applications revisited. Algorithmica 7, 415–427 (1992)
Moret, B., Shapiro, H.: An empirical analysis of algorithms for constructing a minimum spanning tree. In: Dehne, F., Sack, J.-R., Santoro, N. (eds.) WADS 1991. LNCS, vol. 519, pp. 400–411. Springer, Heidelberg (1991)
Nagamochi, H., Ibaraki, T.: Computing edge-connectivity in multigraphs and capacitated graphs. J. Disc. Math. 5(1), 54–66 (1992)
Peterson, G.L.: A balanced tree scheme for meldable heaps with updates. Technical Report GIT-ICS-87-23, Georgia Inst. of Tech (1987)
Pettie, S.: Towards a final analysis of pairing heaps. In: FOCS, pp. 174–183 (2005)
Stasko, J.T., Vitter, J.S.: Pairing heaps: experiments and analysis. Comm. ACM 30(3), 234–249 (1987)
Tarjan, R.E.: Amortized computational complexity. J. Alg. Disc. Methods 6, 306–318 (1985)
Various. The Fifth DIMACS Challenge—Priority Queue Tests (1996)
Vuillemin, J.: A data structure for manipulating priority queues. Comm. ACM 21(4), 309–315 (1978)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Haeupler, B., Sen, S., Tarjan, R.E. (2009). Rank-Pairing Heaps. In: Fiat, A., Sanders, P. (eds) Algorithms - ESA 2009. ESA 2009. Lecture Notes in Computer Science, vol 5757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04128-0_59
Download citation
DOI: https://doi.org/10.1007/978-3-642-04128-0_59
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-04127-3
Online ISBN: 978-3-642-04128-0
eBook Packages: Computer ScienceComputer Science (R0)