A Survey on Priority Queues

Back in 1964 Williams introduced the binary heap as a basic priority queue data structure supporting the operations Insert and ExtractMin in logarithmic time. Since then numerous papers have been published on priority queues. This paper tries to list some of the directions research on priority queues has taken the last 50 years.

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

[2]  Amr Elmasry,et al.  A Priority Queue with the Working-set Property , 2006, Int. J. Found. Comput. Sci..

[3]  Bernard Chazelle,et al.  A minimum spanning tree algorithm with inverse-Ackermann type complexity , 2000, JACM.

[4]  Gerth Stølting Brodal,et al.  Worst-Case External-Memory Priority Queues , 1998, SWAT.

[5]  J. Ian Munro,et al.  Selection and sorting with limited storage , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[6]  Svante Carlsson,et al.  The Deap-A Double-Ended Heap to Implement Double-Ended Priority Queues , 1987, Inf. Process. Lett..

[7]  Chris Okasaki,et al.  Alternatives to two classic data structures , 2005, SIGCSE '05.

[8]  M. W. Du,et al.  Diamond Deque: A Simple Data Structure for Priority Deques , 1993, Inf. Process. Lett..

[9]  Mark de Berg,et al.  Algorithms - ESA 2010, 18th Annual European Symposium, Liverpool, UK, September 6-8, 2010. Proceedings, Part I , 2010, ESA.

[10]  Sartaj Sahni,et al.  Mergeable Double-Ended Priority Queues , 1999, Int. J. Found. Comput. Sci..

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

[12]  Juhani Karhumäki,et al.  Computer Science - Theory and Applications , 2014, Lecture Notes in Computer Science.

[13]  J. Ian Munro,et al.  An Implicit Binomial Queue with Constant Insertion Time , 1988, SWAT.

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

[15]  Jörg-Rüdiger Sack,et al.  An algorithm for merging meaps , 1985, Acta Informatica.

[16]  Timothy M. Chan Quake Heaps: A Simple Alternative to Fibonacci Heaps , 2013, Space-Efficient Data Structures, Streams, and Algorithms.

[17]  Haim Kaplan,et al.  Thin heaps, thick heaps , 2008, TALG.

[18]  Theis Rauhe,et al.  Optimal time-space trade-offs for sorting , 1998, Proceedings 39th Annual Symposium on Foundations of Computer Science (Cat. No.98CB36280).

[19]  Amr Elmasry,et al.  Worst-Case Optimal Priority Queues via Extended Regular Counters , 2011, CSR.

[20]  Stephan Olariu,et al.  A Mergeable Double-Ended Priority Queue , 1991, Comput. J..

[21]  Stefan Edelkamp,et al.  Implementing HEAPSORT with (n logn - 0.9n) and QUICKSORT with (n logn + 0.2n) comparisons , 2002, JEAL.

[22]  Seth Pettie,et al.  An optimal minimum spanning tree algorithm , 2000, JACM.

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

[24]  Gaston H. Gonnet,et al.  Heaps on Heaps , 1982, SIAM J. Comput..

[25]  Lars Arge,et al.  The Buffer Tree: A Technique for Designing Batched External Data Structures , 2003, Algorithmica.

[26]  Dan E. Willard,et al.  Log-logarithmic worst-case range queries are possible in space ⊕(N) , 1983 .

[27]  Mikkel Thorup,et al.  Tight(er) worst-case bounds on dynamic searching and priority queues , 2000, STOC '00.

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

[29]  Sartaj Sahni,et al.  Weight-biased leftist trees and modified skip lists , 1998, JEAL.

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

[31]  Jan van Leeuwen,et al.  Interval Heaps , 1993, Comput. J..

[32]  Peter Sanders,et al.  Fast priority queues for cached memory , 1999, JEAL.

[33]  Michael J. Fischer,et al.  Fishspear: a priority queue algorithm , 1994, JACM.

[34]  Thomas Porter,et al.  Random insertion into a priority queue structure , 1974, IEEE Transactions on Software Engineering.

[35]  Amr Elmasry,et al.  Two new methods for constructing double-ended priority queues from priority queues , 2008, Computing.

[36]  Mikkel Thorup,et al.  Black box for constant-time insertion in priority queues (note) , 2005, TALG.

[37]  Greg N. Frederickson,et al.  Upper Bounds for Time-Space Trade-Offs in Sorting and Selection , 1987, J. Comput. Syst. Sci..

[38]  Thomas Strothotte,et al.  An Algorithm for Merging Heaps , 1985, Acta Informatica.

[39]  Niklaus Wirth,et al.  Algorithms and Data Structures , 1989, Lecture Notes in Computer Science.

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

[41]  Roberto Grossi,et al.  Implicit B-trees: a new data structure for the dictionary problem , 2004, J. Comput. Syst. Sci..

[42]  John Iacono,et al.  Improved Upper Bounds for Pairing Heaps , 2000, SWAT.

[43]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[44]  Mikkel Thorup,et al.  On RAM priority queues , 1996, SODA '96.

[45]  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.

[46]  Svante Carlsson,et al.  A Note on the Construction of Data Structure "DEAP" , 1989, Inf. Process. Lett..

[47]  Berry Schoenmakers,et al.  The Derivation of a Tighter Bound for Top-Down Skew Heaps , 1991, Inf. Process. Lett..

[48]  Donald B. Johnson,et al.  Efficient Algorithms for Shortest Paths in Sparse Networks , 1977, J. ACM.

[49]  Ingo Wegener,et al.  On the Performance of WEAK-HEAPSORT , 2000, STACS.

[50]  Clark A. Crane,et al.  Linear Lists and Prorty Queues as Balanced Binary Trees , 1972, Outstanding Dissertations in the Computer Sciences.

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

[52]  Rolf Fagerberg,et al.  A Generalization of Binomial Queues , 1996, Inf. Process. Lett..

[53]  Ronald D. Dutton,et al.  Weak-heap sort , 1993, BIT.

[54]  Josep Díaz,et al.  Algorithms — ESA '96 , 1996, Lecture Notes in Computer Science.

[55]  Mark Allen Weiss,et al.  On the Complexity of Building an Interval Heap , 1994, Inf. Process. Lett..

[56]  Robert E. Tarjan,et al.  Strict fibonacci heaps , 2012, STOC '12.

[57]  Béla Bollobás,et al.  Repeated Random Insertion into a Priority Queue , 1985, J. Algorithms.

[58]  J. IAN MUNRO,et al.  An Implicit Data Structure Supporting Insertion, Deletion, and Search in O(log² n) Time , 1986, J. Comput. Syst. Sci..

[59]  Amr Elmasry,et al.  The Weak-Heap Family of Priority Queues in Theory and Praxis , 2012, CATS.

[60]  Torben Hagerup,et al.  Algorithm Theory - SWAT 2004 , 2004, Lecture Notes in Computer Science.

[61]  Vijay Kumar,et al.  Improved algorithms and data structures for solving graph problems in external memory , 1996, Proceedings of SPDP '96: 8th IEEE Symposium on Parallel and Distributed Processing.

[62]  Johan Karlsson,et al.  Worst case constant time priority queue , 2001, SODA '01.

[63]  Bernard Chazelle,et al.  The soft heap: an approximate priority queue with optimal error rate , 2000, JACM.

[64]  Magnús M. Halldórsson,et al.  Algorithm Theory - SWAT 2000 , 2000 .

[65]  Gerth Stølting Brodal,et al.  Worst-Case Efficient External-Memory Priority Queues , 1998 .

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

[67]  Haim Kaplan,et al.  A simpler implementation and analysis of Chazelle's soft heaps , 2009, SODA.

[68]  Jeffrey D. Ullman,et al.  A programming and problem solving seminar. , 1991 .

[69]  Amr Elmasry,et al.  A Catalogue of Algorithms for Building Weak Heaps , 2012, IWOCA.

[70]  Rajeev Raman,et al.  Priority Queues: Small, Monotone and Trans-dichotomous , 1996, ESA.

[71]  Nicola Santoro,et al.  Min-max heaps and generalized priority queues , 1986, CACM.

[72]  Jukka Teuhola,et al.  Heaps and Heapsort on Secondary Storage , 1999, Theor. Comput. Sci..

[73]  Amr Elmasry,et al.  Two-tier relaxed heaps , 2006, Acta Informatica.

[74]  Donald B. Johnson,et al.  Priority Queues with Update and Finding Minimum Spanning Trees , 1975, Inf. Process. Lett..

[75]  J. Ian Munro,et al.  Implicit Data Structures for Fast Search and Update , 1980, J. Comput. Syst. Sci..

[76]  Ernst-Erich Doberkat,et al.  An Average Case Analysis of Floyd's Algorithm to Construct Heaps , 1984, Inf. Control..

[77]  Yijie Han,et al.  Deterministic sorting inO(nlog logn) time and linear space , 2002, STOC 2002.

[78]  Donald E. Knuth,et al.  A Programming and Problem-Solving Seminar , 1981 .

[79]  Richard E. Ladner,et al.  The influence of caches on the performance of heaps , 1996, JEAL.

[80]  Mark Allen Weiss,et al.  The K-D Heap: An Efficient Multi-dimensional Priority Queue , 1993, WADS.

[81]  Mark Allen Weiss,et al.  The relaxed min-max heap , 1993, Acta Informatica.

[82]  Amr Elmasry,et al.  Priority Queues and Sorting for Read-Only Data , 2013, TAMC.

[83]  Amr Elmasry,et al.  Multipartite priority queues , 2008, TALG.

[84]  Amr Elmasry,et al.  Pairing heaps with O(log log n) decrease cost , 2009, SODA.

[85]  Michael A. Bender,et al.  An Optimal Cache-Oblivious Priority Queue and Its Application to Graph Algorithms , 2007, SIAM J. Comput..

[86]  Sartaj Sahni,et al.  Correspondence-based data structures for double-ended priority queues , 2000, JEAL.

[87]  Ernst-Erich Doberkat,et al.  Deleting the root of a heap , 1982, Acta Informatica.

[88]  Svante Carlsson,et al.  The complexity of heaps , 1992, SODA '92.

[89]  Greg N. Frederickson,et al.  An Optimal Algorithm for Selection in a Min-Heap , 1993, Inf. Comput..

[90]  Amr Elmasry,et al.  The Violation Heap: a Relaxed Fibonacci-like Heap , 2008, Discret. Math. Algorithms Appl..

[91]  Paul Beame,et al.  A general sequential time-space tradeoff for finding unique elements , 1989, STOC '89.

[92]  Peter van Emde Boas,et al.  Design and implementation of an efficient priority queue , 1976, Mathematical systems theory.

[93]  C. M. Khoong,et al.  Double-Ended Binomial Queues , 1993, ISAAC.

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

[95]  Mikkel Thorup,et al.  Faster deterministic sorting and priority queues in linear space , 1998, SODA '98.

[96]  Michael L. Fredman,et al.  Surpassing the Information Theoretic Bound with Fusion Trees , 1993, J. Comput. Syst. Sci..

[97]  Giuseppe Cattaneo,et al.  Algorithm engineering , 1999, CSUR.

[98]  A. Harvey,et al.  THE POST-ORDER HEAP , 2004 .

[99]  Yijie Han,et al.  Deterministic sorting in O(nloglogn) time and linear space , 2004, J. Algorithms.

[100]  Mikkel Thorup,et al.  Integer priority queues with decrease key in constant time and the single source shortest paths problem , 2003, STOC '03.

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

[102]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.

[103]  Peter van Emde Boas,et al.  Preserving Order in a Forest in Less Than Logarithmic Time and Linear Space , 1977, Inf. Process. Lett..

[104]  Amr Elmasry,et al.  A priority queue with the time-finger property , 2012, J. Discrete Algorithms.

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

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

[107]  Amr Elmasry,et al.  The weak-heap data structure: Variants and applications , 2012, J. Discrete Algorithms.

[108]  Amr Elmasry,et al.  On the Power of Structural Violations in Priority Queues , 2007, CATS.

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

[110]  Gerth Stølting Brodal,et al.  Optimal purely functional priority queues , 1996, Journal of Functional Programming.

[111]  Berry Schoenmakers,et al.  A Tight Lower Bound for Top-Down Skew Heaps , 1997, Inf. Process. Lett..

[112]  Andrew V. Goldberg,et al.  Buckets, heaps, lists, and monotone priority queues , 1997, SODA '97.

[113]  J. Ian Munro,et al.  Searchability in merging and implicit data structures , 1987, BIT Comput. Sci. Sect..

[114]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[115]  Robert E. Tarjan,et al.  Rank-Pairing Heaps , 2009, ESA.

[116]  Gianni Franceschini,et al.  Implicit dictionaries with O(1) modifications per update and fast search , 2006, SODA '06.

[117]  Johan Karlsson,et al.  An O(1) Solution to the Prefix Sum Problem on a Specialized Memory Architecture , 2006, IFIP TCS.

[118]  Roberto Grossi,et al.  Optimal Worst-Case Operations for Implicit Cache-Oblivious Search Trees , 2003, WADS.

[119]  Amr Elmasry,et al.  Pairing Heaps with Costless Meld , 2009, ESA.

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

[121]  C. Pandu Rangan,et al.  Symmetric Min-Max Heap: A Simpler Data Structure for Double-Ended Priority Queue , 1999, Inf. Process. Lett..

[122]  Douglas W. Jones,et al.  An empirical comparison of priority-queue and event-set implementations , 1986, CACM.

[123]  M. H. Eggar,et al.  A tournament problem , 2003, Discret. Math..

[124]  Mikkel Thorup,et al.  Melding priority queues , 2004, TALG.

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

[126]  Stefan Arnborg,et al.  Algorithm Theory — SWAT'98 , 1998, Lecture Notes in Computer Science.

[127]  Greg N. Frederickson,et al.  Implicit Data Structures for the Dictionary Problem , 1983, JACM.

[128]  Mikkel Thorup Equivalence between priority queues and sorting , 2007, JACM.

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