B-Tree and Heaps Today’S Announcements

B-Tree and Heaps Today’S Announcements

B-Tree and Heaps Today's announcements I HW3 out, due Nov 15, 23:59 I MT2 Nov 7, 19:00-21:00 WOOD 2 Today's Plan I B-Tree wrap I Priority queues Warm up: If m = 128, then a B-Tree of height 4 must contain at least 1. 300 items 2. 3,000 items 3. 30,000 items 4. 300,000 items 5. 3,000,000 items 6. 30,000,000 items 1 / 10 Thinking about B-Trees I Remove is fast if leaf doesn't underflow or we can take from a sibling. Merging and propagation take more time. I Insert is fast if leaf doesn't overflow. (Could we give to a sibling?) Splitting and propagation take more time. I Propagation is rare if m is large (Why?) I Repeated insertions and deletion can cause thrashing I Range queries (i.e., findBetween(key1, key2)) are fast because of sibling pointers. 2 / 10 B-Trees in practice Multiple B-Trees can index the same data records. Employee Name bat emu kea ant auk bee boa elk ewe fox gnu goa kit owl yak Employee ID 15 20 30 10 11 12 16 17 22 25 26 31 32 33 36 disk Name: auk Name: yak ID: 16 ID: 22 Food: fish Food: grass 3 / 10 A Tree by Any Other Name... I B-Trees with m = 3 are called 2-3 trees I B-Trees with m = 4 are called 2-3-4 trees Why would we ever use these? 4 / 10 Back to Queues I Applications I ordering CPU jobs I simulating events I picking the next search site I But we don't want FIFO ... I short jobs should go first I earliest (simulated time) events should go first I most promising sites should be searched first 5 / 10 Priority Queue ADT I Priority Queue operations I create dog 14 I destroy insert ant 8 deleteMin I insert bee 2 emu 6 I removeMin I is empty cat 4 I Priority Queue property: For two elements in the queue, x and y, if x has a lower priority value than y, x will be dequeued before y. 6 / 10 Applications of the Priority Q I Hold jobs for a printer in order of length I Store packets on network routers in order of urgency I Simulate events I Select symbols for compression I Sort numbers I Anything greedy: an algorithm that makes the \locally best choice" at each step 7 / 10 Priority Q Data Structures I Unsorted list I insert time: I removeMin time: I Sorted list I insert time: I removeMin time: 8 / 10 Binary Heap Priority Q Data Structure What properties does this structure have? 2 4 5 7 6 10 8 13 9 12 14 11 9 / 10 Nifty Storage Trick Navigation using indices: I left child(i) = 0 I right child(i) = 2 I parent(i) = 1 2 4 5 I root = 3 4 5 6 I next free position = 7 6 10 8 13 9 12 14 11 7 8 9 10 11 0123456789 10 11 12 2 4 5 7 6 10 8 13 9 12 14 11 10 / 10.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 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