Rank-Pairing Heaps

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

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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)MATHGoogle Scholar
  19. 19.
    Knuth, D.E.: The Art of Computer Programming. Sorting and Searching, vol. 3. Addison-Wesley, Reading (1973)MATHGoogle Scholar
  20. 20.
    Liao, A.M.: Three priority queue applications revisited. Algorithmica 7, 415–427 (1992)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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)MathSciNetCrossRefMATHGoogle 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