Two-tier relaxed heaps

We introduce a data structure which provides efficient heap operations with respect to the number of element comparisons performed. Let n denote the size of the heap being manipulated. Our data structure guarantees the worst-case cost of O(1) for finding the minimum, inserting an element, extracting an (unspecified) element, and replacing an element with a smaller element; and the worst-case cost of O(lg n) with at most lg n + 3 lg lg n + O(1) element comparisons for deleting an element. We thereby improve the comparison complexity of heap operations known for run-relaxed heaps and other worst-case efficient heaps. Furthermore, our data structure supports melding of two heaps of size m and n at the worst-case cost of O(min {lg m, lg n}).

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

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

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

[4]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

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

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

[7]  Amr Elmasry,et al.  Two-Tier Relaxed Heaps , 2006, ISAAC.

[8]  Jyrki Katajainen,et al.  A Framework for Speeding Up Priority-Queue Operations , 2005 .

[9]  Amr Elmasry,et al.  Two new methods for transforming priority queues into double-ended priority queues , 2007 .

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

[11]  Jan van Leeuwen,et al.  Worst-Case Optimal Insertion and Deletion Methods for Decomposable Searching Problems , 1981, Inf. Process. Lett..

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

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

[14]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

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

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

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

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

[19]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

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

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

[22]  Michael T. Goodrich,et al.  Algorithm Design: Foundations, Analysis, and Internet Examples , 2001 .