Rank-Pairing Heaps

  • Bernhard Haeupler
  • Siddhartha Sen
  • Robert E. Tarjan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5757)


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.


Priority Queue Rank Difference Rank Zero Left Child Left Subtree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Brodal, G.: Worst-case efficient priority queues. In: SODA, pp. 52–58 (1996)Google Scholar
  2. 2.
    Brown, M.R.: Implementation and analysis of binomial queue algorithms. SIAM J. Comput., 298–319 (1978)Google Scholar
  3. 3.
    Chan, T.M.: Quake heaps: a simple alternative to Fibonacci heaps (2009)Google Scholar
  4. 4.
    Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    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)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Edmonds, J.: Optimum branchings. J. Res. Nat. Bur. Standards B71, 233–240 (1967)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Elmasry, A.: Violation heaps: A better substitute for Fibonacci heaps. CoRR (2008)Google Scholar
  8. 8.
    Elmasry, A.: Pairing heaps with O(loglogn) decrease cost. In: SODA, pp. 471–476 (2009)Google Scholar
  9. 9.
    Fredman, M.L.: On the efficiency of pairing heaps and related data structures. J. ACM 46(4), 473–501 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    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)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. In: FOCS, pp. 338–346, 24–26 (1984)Google Scholar
  12. 12.
    Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. J. ACM 34(3), 596–615 (1987)MathSciNetCrossRefGoogle Scholar
  13. 13.
    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)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Høyer, P.: A general technique for implementation of efficient priority queues. In: ISTCS, pp. 57–66 (1995)Google Scholar
  15. 15.
    Kaplan, H., Shafrir, N., Tarjan, R.E.: Meldable heaps and boolean union-find. In: STOC, pp. 573–582 (2002)Google Scholar
  16. 16.
    Kaplan, H., Tarjan, R.E.: New heap data structures. Technical Report TR-597-99, Princeton Univ. (1999)Google Scholar
  17. 17.
    Kaplan, H., Tarjan, R.E.: Thin heaps, thick heaps. ACM Trans. Alg. 4(1), 1–14 (2008)MathSciNetCrossRefGoogle Scholar
  18. 18.
    Knuth, D.E.: The Art of Computer Programming. Fundamental Algorithms, vol. 1. Addison-Wesley, Reading (1973)zbMATHGoogle Scholar
  19. 19.
    Knuth, D.E.: The Art of Computer Programming. Sorting and Searching, vol. 3. Addison-Wesley, Reading (1973)zbMATHGoogle Scholar
  20. 20.
    Liao, A.M.: Three priority queue applications revisited. Algorithmica 7, 415–427 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    Nagamochi, H., Ibaraki, T.: Computing edge-connectivity in multigraphs and capacitated graphs. J. Disc. Math. 5(1), 54–66 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Peterson, G.L.: A balanced tree scheme for meldable heaps with updates. Technical Report GIT-ICS-87-23, Georgia Inst. of Tech (1987)Google Scholar
  24. 24.
    Pettie, S.: Towards a final analysis of pairing heaps. In: FOCS, pp. 174–183 (2005)Google Scholar
  25. 25.
    Stasko, J.T., Vitter, J.S.: Pairing heaps: experiments and analysis. Comm. ACM 30(3), 234–249 (1987)MathSciNetCrossRefGoogle Scholar
  26. 26.
    Tarjan, R.E.: Amortized computational complexity. J. Alg. Disc. Methods 6, 306–318 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  27. 27.
    Various. The Fifth DIMACS Challenge—Priority Queue Tests (1996)Google Scholar
  28. 28.
    Vuillemin, J.: A data structure for manipulating priority queues. Comm. ACM 21(4), 309–315 (1978)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Bernhard Haeupler
    • 1
  • Siddhartha Sen
    • 2
  • Robert E. Tarjan
    • 2
    • 3
  1. 1.Massachusetts Institute of TechnologyUSA
  2. 2.Princeton UniversityUSA
  3. 3.HP LaboratoriesPalo Alto

Personalised recommendations