Thin heaps, thick heaps

The Fibonacci heap was devised to provide an especially efficient implementation of Dijkstra's shortest path algorithm. Although asyptotically efficient, it is not as fast in practice as other heap implementations. Expanding on ideas of Høyer [1995], we describe three heap implementations (two versions of thin heaps and one of thick heaps) that have the same amortized efficiency as Fibonacci heaps, but need less space and promise better practical performance. As part of our development, we fill in a gap in Høyer's analysis.

[1]  M. AdelsonVelskii,et al.  AN ALGORITHM FOR THE ORGANIZATION OF INFORMATION , 1963 .

[2]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[3]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[4]  Donald E. Knuth,et al.  fundamental algorithms , 1969 .

[5]  Mark R. Brown,et al.  Implementation and Analysis of Binomial Queue Algorithms , 1978, SIAM J. Comput..

[6]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[7]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[8]  Robert E. Tarjan,et al.  A Class of Algorithms which Require Nonlinear Time to Maintain Disjoint Sets , 1979, J. Comput. Syst. Sci..

[9]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[10]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[11]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[12]  R. Tarjan Amortized Computational Complexity , 1985 .

[13]  Robert E. Tarjan,et al.  Efficient algorithms for finding minimum spanning trees in undirected and directed graphs , 1986, Comb..

[14]  Robert E. Tarjan,et al.  Self-Adjusting Heaps , 1986, SIAM J. Comput..

[15]  John T. Stasko,et al.  Pairing heaps: experiments and analysis , 1987, CACM.

[16]  Robert E. Tarjan,et al.  Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation , 1988, CACM.

[17]  Michael L. Fredman,et al.  Trans-Dichotomous Algorithms for Minimum Spanning Trees and Shortest Paths , 1994, J. Comput. Syst. Sci..

[18]  Gerth Stølting Brodal,et al.  Fast Meldable Priority Queues , 1995, WADS.

[19]  Amir M. Ben-Amram,et al.  What is a “pointer machine”? , 1995, SIGA.

[20]  Peter Høyer,et al.  A general technique for implementation of efficient priority queues , 1995, Proceedings Third Israel Symposium on the Theory of Computing and Systems.

[21]  Gerth Stølting Brodal,et al.  Worst-case efficient priority queues , 1996, SODA '96.

[22]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[23]  Tadao Takaoka Theory of 2-3 Heaps , 1999, COCOON.

[24]  Michael L. Fredman,et al.  A Priority Queue Transform , 1999, WAE.

[25]  Michael L. Fredman,et al.  On the efficiency of pairing heaps and related data structures , 1999, JACM.

[26]  Tadao Takaoka Theory of Trinomial Heaps , 2000, COCOON.

[27]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[28]  Thomas H. Cormen,et al.  Introduction to algorithms [2nd ed.] , 2001 .

[29]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[30]  Haim Kaplan,et al.  Meldable heaps and boolean union-find , 2002, STOC '02.

[31]  Gerth Stølting Brodal,et al.  Funnel Heap - A Cache Oblivious Priority Queue , 2002, ISAAC.

[32]  Michael A. Bender,et al.  Cache-oblivious priority queue and graph algorithm applications , 2002, STOC '02.

[33]  Ulrich Meyer,et al.  Cache-Oblivious Data Structures and Algorithms for Undirected Breadth-First Search and Shortest Paths , 2004 .

[34]  Mikkel Thorup Integer priority queues with decrease key in constant time and the single source shortest paths problem , 2004, J. Comput. Syst. Sci..

[35]  Rudolf Bayer,et al.  Symmetric binary B-Trees: Data structure and maintenance algorithms , 1972, Acta Informatica.

[36]  Amr Elmasry,et al.  Layered Heaps , 2004, SWAT.

[37]  Amr Elmasry,et al.  Parameterized self-adjusting heaps , 2004, J. Algorithms.

[38]  Seth Pettie,et al.  Towards a final analysis of pairing heaps , 2005, 46th Annual IEEE Symposium on Foundations of Computer Science (FOCS'05).

[39]  Robert E. Tarjan,et al.  The pairing heap: A new form of self-adjusting heap , 2005, Algorithmica.