Presentation is loading. Please wait.

Presentation is loading. Please wait.

Melding Priority Queues

Similar presentations


Presentation on theme: "Melding Priority Queues"— Presentation transcript:

1 Melding Priority Queues
Ran Mendelson Robert E. Tarjan Mikkel Thorup Uri Zwick SWAT 2004

2 Non-meldable Priority Queue Meldable Priority Queue
Improved analysis of transformation Non-meldable Priority Queue Meldable Priority Queue pq(n)+α(n) time per operation pq(n) time per operation or pq(n)α(n,n/pq(n)) time per operation

3 Second transformation
Meldable Priority Queue pq(n) time per operation pq(N) time per operation n – number of elements in priority queue Keys are is {1,2,…,N}

4 Meldable Priority Queues Insert Delete Find-Min O(1) O(log n) Dec-Key
10 25 4 7 13 2 17 1 Dec-Key O(1) 5 38 Meld Amortized [Fredman-Tarjan ’87] Worst case [Brodal ’96] Best possible comparison based results

5 using our transformation
RAM Priority Queues Keys are integers that fit into a single machine word. Standard arithmetical and logical operations take constant time Insert Delete Find-Min O(1) O(log log n) 010010 001001 011010 Dec-Key using our transformation Meld O(1) NO [Thorup ’03]

6 At most O(log2n) elements!
Atomic heaps Insert Delete Find-Min O(1) 011010 000010 010011 At most O(log2n) elements! Meld NO [Fredman-Willard ’94]

7 Union Find makeset union find delete O(1) O(α(m,n)) Amortized
b c d e Amortized [Tarjan ’75 , Tarjan & van Leeuven ’84 ]

8 α(m,n) = min{ k : Ak(m/n) ≥ n }
Ackermann’s function A0(j) = j+1 Ai(j) = Ai-1(j+1)(j) Grows extremely FAST α(n) = min{ k : Ak(1) ≥ n } α(m,n) = min{ k : Ak(m/n) ≥ n } Grows extremely slow

9 Union Find Represent each set as a rooted tree Union by rank
Path compression

10 Union by rank r+1 r2 r r r1

11 Path Compression

12 Non-meldable priority queue + Union Find

13 Use the union-find data stricture to maintain the sets
Place a non-meldable priority queue at each node of a union-find tree holding the minimal element in each one of its subtrees 9 1 5 1 2 4 5 3 19 2 7 4 8 6 19 2 4 8 6

14 Handling deletions using path compression
The amortized delete cost is O(pq(n)α(n)) [MTZ’04] [van Emde Boaz, Kaas, Zijlstra ’77 ]

15 Flavor of improved analysis
rank ≥ k At most n/2k nodes size ≥ 2k rank < k size < 2k Choose k=2loglog n. If f>n/log n, we are done.

16 More flavor of improved analysis
rank ≥ k size ≥ 2k rank < k size ≥ 2k rank < k size < 2k

17 Conclusion Sorting Worst-case non-meldable priority queues
Amortized meldable priority queues


Download ppt "Melding Priority Queues"

Similar presentations


Ads by Google