Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 213 – Large Scale Programming. Announcements Tuesday, May 10 from 10:15 – 12:15 in OM200  CSC213 final exam has been scheduled: Tuesday, May 10 from.

Similar presentations


Presentation on theme: "CSC 213 – Large Scale Programming. Announcements Tuesday, May 10 from 10:15 – 12:15 in OM200  CSC213 final exam has been scheduled: Tuesday, May 10 from."— Presentation transcript:

1 CSC 213 – Large Scale Programming

2 Announcements Tuesday, May 10 from 10:15 – 12:15 in OM200  CSC213 final exam has been scheduled: Tuesday, May 10 from 10:15 – 12:15 in OM200 Thursday, May 12 from 2:45 – 3:45 in OM119  Lab mastery exam also on the schedule Thursday, May 12 from 2:45 – 3:45 in OM119

3 Problems with Search Trees  Great at organizing information for searching  Processing is maintained at consistent O (log n ) time  But sucks at locality (both spatial and temporal)  Each node contains only 1 piece of data  Jumps to child after using that piece of data  All of these references means nodes spaced randomly

4 Big Search Trees  Excellent way to test roommates system

5 Big Search Trees roommates  Excellent way to test roommates system

6 Big Search Trees roommates  Excellent way to test roommates system

7 (a,b) Trees to the Rescue!  Real solution to frequent hikes to Germany  Linux & MacOS to track files & directories  MySQL & other databases use this to hold all the data  Found in many other places where paging occurs  Simple rules define working of any ( a, b ) tree  Grows upward so that all leaves found at same level  At least a children for each internal node  Every internal node has at most b children

8 What is “the BTree?”  Common multi-way tree implementation  Describe B-Tree using order (“BTree of order m ”)  m / 2 to m children per internal node  Root node can have m or fewer elements  Many variants exist to improve some failing  Each variant is specialized for some niche use  Minor differences only between each variant  Describes the most basic B-Tree during lecture

9 BTree Order  Select order minimizing paging when created  Elements & references to kids in full node fills page  Nodes have at least m / 2 elements, even at their smallest  In memory guarantees each page is at least 50% full  How many pages touched by each operation?

10 Removal from BTree  Swap element with successor in parent of a leaf  Process is similar to removal in (2,4) node  If under m / 2 elements in node after the removal  See if can move element from sibling to parent & steal element from parent  Else, merge with sibling & steal element from parent  But this might propagate underflow to parent node!

11 Removal from BTree  Swap element with successor in parent of a leaf  Process is similar to removal in (2,4) node  If under m / 2 elements in node after the removal  See if can move element from sibling to parent & steal element from parent  Else, merge with sibling & steal element from parent  But this might propagate underflow to parent node!  Remind anyone else of another structure?

12 ( 2, 4 ) Tree Is An ( a, b ) Tree  Grows upward so all leaves found at same level  At least a children for each internal node  Every internal node has at most b children

13 Underflow and Fusion  Entry deletion may cause underflow  Node less than ½ full after removing the Entry  Choice of solution depends on situation  Example: remove(15) 15 9 14 10 112 5 7

14 Underflow and Fusion  Entry deletion may cause underflow  Node less than ½ full after removing the Entry  Choice of solution depends on situation  Example: remove(15) 15 9 14 2 5 710 11

15 Underflow and Fusion  Entry deletion may cause underflow  Node less than ½ full after removing the Entry  Choice of solution depends on situation  Example: remove(15) 15 9 14 2 5 710 11

16 Underflow and Fusion  Entry deletion may cause underflow  Node less than ½ full after removing the Entry  Choice of solution depends on situation  Example: remove(15) 9 14 2 5 710 11

17 Case 1: Transfer  Adjacent sibling Node has Entry to lend  Steal parent’s Entry closest to underfilled node  Prevent loneliness & promote sibling’s Entry  No further processing needed in this case  Example: remove(15) 9 14 2 5 710 11

18 Case 1: Transfer  Adjacent sibling Node has Entry to lend  Steal parent’s Entry closest to underfilled node  Prevent loneliness & promote sibling’s Entry  No further processing needed in this case  Example: remove(15) 14 9 2 5 710 11

19 Case 1: Transfer  Adjacent sibling Node has Entry to lend  Steal parent’s Entry closest to underfilled node  Prevent loneliness & promote sibling’s Entry  No further processing needed in this case  Example: remove(15) 14 9 2 5 710 11

20 Case 1: Transfer  Adjacent sibling Node has Entry to lend  Steal parent’s Entry closest to underfilled node  Prevent loneliness & promote sibling’s Entry  No further processing needed in this case  Example: remove(15) 14 9 11 2 5 710

21 Case 1: Transfer  Adjacent sibling Node has Entry to lend  Steal parent’s Entry closest to underfilled node  Prevent loneliness & promote sibling’s Entry  No further processing needed in this case  Example: remove(15) 14 9 11 2 5 710

22 Case 2: Fusion  Emptied node has only ½ filled siblings  Merge node & sibling into single nearly filled node  Look to parent & steal Entry between siblings  May propagate underflow to parent!  Example: remove(14) Mom 14 9 11 2 5 710

23 Case 2: Fusion  Emptied node has only ½ filled siblings  Merge node & sibling into single nearly filled node  Look to parent & steal Entry between siblings  May propagate underflow to parent!  Example: remove(14) Mom 9 11 102 5 7

24 Case 2: Fusion  Emptied node has only ½ filled siblings  Merge node & sibling into single nearly filled node  Look to parent & steal Entry between siblings  May propagate underflow to parent!  Example: remove(14) Mom 9 11 102 5 7

25 Case 2: Fusion  Emptied node has only ½ filled siblings  Merge node & sibling into single nearly filled node  Look to parent & steal Entry between siblings  May propagate underflow to parent!  Example: remove(14) Mom 9 10 112 5 7

26 Case 2: Fusion  Emptied node has only ½ filled siblings  Merge node & sibling into single nearly filled node  Look to parent & steal Entry between siblings  May propagate underflow to parent!  Example: remove(14) Mom 9 10 112 5 7

27 Case 2: Fusion  Emptied node has only ½ filled siblings  Merge node & sibling into single nearly filled node  Look to parent & steal Entry between siblings  May propagate underflow to parent!  Example: remove(14) Mom 9 10 112 5 7

28 In Case Of Overflow…  If addition overfills node, split into 2 new nodes  ½ of the Entry s (& children) for the new nodes  Splitting now makes sure nodes at least ½ full! 15 24 1218 27 30 32 35

29 In Case Of Overflow…  If addition overfills node, split into 2 new nodes  ½ of the Entry s (& children) for the new nodes  Splitting now makes sure nodes at least ½ full! 15 24 1218 27 30 32 35 12 27 30 18 35

30 In Case Of Overflow…  If addition overfills node, split into 2 new nodes  ½ of the Entry s (& children) for the new nodes  Splitting now makes sure nodes at least ½ full! 15 24 1218 27 30 32 35 1218 35 15 24 32 27 30

31 In Case Of Overflow…  If addition overfills node, split into 2 new nodes  ½ of the Entry s (& children) for the new nodes  Splitting now makes sure nodes at least ½ full!  Check parent for overflow, since added 1 Entry 15 24 1218 27 30 32 35 121835 15 24 32 27 30

32 For Next Lecture  Remember, must submit program #3 on Friday  Should start today and work through the week  2 nd best debugging technique? Taking a (short) break!  Weekly activity due tomorrow  Come and ask me any questions you may have!  Final problem day in class on Wednesday  At end of lab time Friday, lab phase #4 due


Download ppt "CSC 213 – Large Scale Programming. Announcements Tuesday, May 10 from 10:15 – 12:15 in OM200  CSC213 final exam has been scheduled: Tuesday, May 10 from."

Similar presentations


Ads by Google