Binomal Heaps and Queues Node

Binomal Heaps and Queues Node

EECS 311: Data Structure and Data Management Lecture 21, 22 Binomial Queues Binomial Queues & Heaps Reading: Chapter 6 (except 6.4–6.7); Chap- binomial tree structure: ter 11, Sections 2 and 4. • n is power of 2. • n = 1: binomial tree is a single Binomal Heaps and Queues node. • n =2i two 2i−1 node binomial trees, binary heaps based queues may be improv- make one a child of root of other. able. Example: 1. perform some operations faster? • One node trees: 2. binomial queue 2 . 9 • O(log n) merge. • Two node trees: 3. redundant binomial queue 2 5 • O(1) insert 9 7 • Θ(log n) delete-min, reduce-key. • Four node trees: 4. Fibonacci heaps 2 1 • O(1) insert, reduce-key 9 5 6 3 • O(log n) delete-min 7 8 • Dijkstra’s shortest paths + fi- conacci heap ⇒ Θ(n log n + m). • Eight node tree: Binomial Heaps 1 Def: a binomial heaps is a tree that satis- 6 3 2 fies 8 9 5 heap order: key at node is smaller than keys of children. 7 1 Def: a binomial queue is 1. make k into single-node queue Q′. ′ • a list of binomial heaps. 2. merge Q and Q . • for each i, at most one heap of size 2i. Runtime: merge = Θ(log n) Algorithm: delete-min Algorithm: binomial heap merge Input: Q Input: H1 and H2, two n node binomial i heaps. 1. find heap with min key ⇒ Hi, size 2 ′ • Make tree with greater root-key child of 2. remove heap Hi ⇒ Q root of other tree. 3. delete root of Hi ⇒ i heaps sizes Runtime: O(1) {1,...,i} Analogy: 4. treats heaps as queue Q′′. ′ ′′ • size n binomial queue ⇔ number n 5. merge Q and Q . • heap of size 2i in list ⇔ ith binary digit Runtime: search + merge = Θ(log n) of n is 1. Algorithm: reduce-key Input: Q, key k, value v. Example: 1. find (k′, v) in queue (assume we have 0 1 2 3 4 5 pointer) / / / • • • 2. reduce k′ to k and percolate-up. 10 X 0 1 Runtime: percolate-up = Θ(log n). Claim: from empty queue, n inserts costs 4 6 3 2 Θ(n). 8 9 5 Proof: 7 • merge ⇔ add • insert ⇔ increment Algorithm: merge queue Input: Q1, Q2 • n increments from zero costs Θ(n). 1. treat queues like numbers 2 Algorithm: 2. add numbers. build-heap Input: unordered list Runtime: Θ(log n) 1. initialize empty queue. Algorithm: insert Input: queue Q, key k 2. insert each object. 2 Redundant Binomial Queue “Θ(1) worst-case insert” Recall: redundant binary counter • digits are 0, 1, or 2. • regularity property: 0s and 2s alter- nate. Def: a redundant binomial queue is • a list of binomial heaps. • for each i, at most two heaps of size 2i. • heaps (as digits) satisfy redundant counter regularity. Claim: all queue operations can be imple- mented to maintain regularity. Proof: all queue operations are like arith- metic operations Claim: redundant binary counter has Θ(1) insert, and Θ(log n) merge, delete-min, reduce-key. 3.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    3 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us