buildheap disjoint sets
play

BuildHeap & Disjoint sets Todays announcements HW3 due Nov 15, - PowerPoint PPT Presentation

BuildHeap & Disjoint sets Todays announcements HW3 due Nov 15, 23:59 PA3 out, Due Nov 29, 23:59 buildHeap for( int i=size/2; i > 0; i-- ) heapifyDown(i); 1 12 12 12 2 3 5 11 5 11 5 11 4 5 6 7 3 10 6 9 3 10


  1. BuildHeap & Disjoint sets Today’s announcements ◮ HW3 due Nov 15, 23:59 ◮ PA3 out, Due Nov 29, 23:59 buildHeap for( int i=size/2; i > 0; i-- ) heapifyDown(i); 1 12 12 12 2 3 5 11 5 11 5 11 4 5 6 7 3 10 6 9 3 10 2 9 3 1 2 9 4 8 1 7 2 4 8 1 7 6 4 8 10 7 6 8 9 10 11 12 12 12 12 5 11 5 2 1 2 3 1 2 9 3 1 6 9 3 5 6 9 4 8 10 7 6 4 8 10 7 11 4 8 10 7 11 1 / 7

  2. BuildHeap runtime: Charging scheme $ $ $ $ $ $ $ $ $ $ $ $ $ $ • Place a dollar on each edge of the heap. • Use $’s on leftmost unspent path from node v to a leaf to pay for heapifyDown(v) . • Show (by induction) when heapifyDown(v) is called, both children of v have an unspent path (the rightmost path) to a leaf. 2 / 7

  3. Heapsort 1. Call buildHeap on the input array. 2. Repeat n times: Perform removeMin Worst Case: 3 / 7

  4. Disjoint Sets gorilla chimp panda raccoon human bear human chimp human chimp gorilla bear panda bear raccoon panda bear human gorilla chimp raccoon panda 4 / 7

  5. Disjoint Sets ADT Maintain a collection S = { S 1 , S 2 , . . . , S k } of disjoint sets. Each set has a representative element. Disjoint Sets operations ◮ void MakeSet(const T & k) ◮ void Union(const T & k1, const T & k2) ◮ T & Find(const T & k) How would you represent S = {{ 0 , 1 , 4 } , { 2 , 7 } , { 3 , 5 , 6 }} ? 0 1 2 3 4 5 6 7 Find Union 5 / 7

  6. Disjoint Sets using UpTrees 0 2 3 8 S = {{ 0 , 1 , 4 } , { 2 , 7 } , { 3 , 5 , 6 } , { 8 }} 1 7 5 6 0 1 2 3 4 5 6 7 8 parent 4 0 0 2 3 1 3 3 2 8 Find runtime depends on? int DS::Find( int k ) { if( parent[k] == k ) return k; else return Find( parent[k] ); } void DS::Union(int root1, int root2) { parent[root__] = root__; } 6 / 7

  7. Smart Union 0 3 5 6 8 1 4 Union by height Choose root to minimize height. Union by size Choose root to minimize total depth. Following either scheme guarantees tree with n nodes has height: 7 / 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend