Presentation is loading. Please wait.

Presentation is loading. Please wait.

October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.1 Introduction to Algorithms LECTURE 8 Balanced Search Trees ‧ Binary.

Similar presentations


Presentation on theme: "October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.1 Introduction to Algorithms LECTURE 8 Balanced Search Trees ‧ Binary."— Presentation transcript:

1 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.1 Introduction to Algorithms LECTURE 8 Balanced Search Trees ‧ Binary search trees ‧ Red-black trees ‧ Height of a red-black tree ‧ Rotations ‧ Insertion

2 Binary-search-tree sort T← ∅ ⊳ Create an empty BST for i= 1 to n do TREE-INSERT (T, A[i]) Perform an inorder tree walk of T. Example: A= [3 1 8 2 6 7 5] Tree-walk time = O(n), but how long does it take to build the BST?

3 Analysis of BST sort BST sort performs the same comparisons as quicksort, but in a different order! The expected time to build the tree is asymptot- icallythe same as the running time of quicksort.

4 Node depth The depth of a node=the number of comparisons made during TREE- INSERT. Assuming all input permutations are equally likely, we have Average node depth (quicksort analysis) (#comparison to insert node i )

5 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.2 Balanced search trees Balanced search tree: A search-tree data structure for which a height of O(lg n) is guaranteed when implementing a dynamic set of n items. Example : AVL trees 2-3 trees 2-3-4 trees B-trees Red-black trees

6 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.3 Red-black trees Red-black properties: 1. Every node is either red or black. 2. The root and leaves (NIL’s) are black. 3. If a node is red, then its parent is black. 4. All simple paths from any node x to a descendant leaf have the same number of black nodes = black-height(x). This data structure requires an extra one-bit color field in each node.

7 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.4 Example of a red-black tree

8 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.5 Example of a red-black tree 1. Every node is either red or black.

9 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.6 Example of a red-black tree 2. The root and leaves (NIL’s) are black.

10 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.7 3. If a node is red, then its parent is black. Example of a red-black tree

11 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.8 4. All simple paths from any node x to a descendant leaf have the same number of black nodes = black-height(x). Example of a red-black tree

12 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.9 Height of a red-black tree Theorem. A red-black tree with n keys has height Proof. (The book uses induction. Read carefully.) INTUITION: Merge red nodes into their black parents.

13 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.10 Height of a red-black tree Theorem. A red-black tree with n keys has height Proof. (The book uses induction. Read carefully.) INTUITION: Merge red nodes into their black parents.

14 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.11 Height of a red-black tree Theorem. A red-black tree with n keys has height Proof. (The book uses induction. Read carefully.) INTUITION: Merge red nodes into their black parents.

15 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.12 Height of a red-black tree Theorem. A red-black tree with n keys has height Proof. (The book uses induction. Read carefully.) INTUITION: Merge red nodes into their black parents.

16 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.13 Height of a red-black tree Theorem. A red-black tree with n keys has height Proof. (The book uses induction. Read carefully.) INTUITION: Merge red nodes into their black parents.

17 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.14 Height of a red-black tree Theorem. A red-black tree with n keys has height Proof. (The book uses induction. Read carefully.) INTUITION: Merge red nodes into their black parents. ‧ This process produces a tree in which each node has 2, 3, or 4 children. ‧ The 2-3-4 tree has uniform depth h′ of leaves.

18 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.15 Proof (continued) ‧ We have h′≥ h/2, since at most half the leaves on any path are red. The number of leaves in each tree is n + 1

19 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.16 Query operations Corollary. The queries SEARCH, MIN, MAX, SUCCESSOR, and PREDECESSOR all run in O(lg n) time on a red-black tree with n nodes.

20 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.17 Modifying operations ‧ the operation itself, ‧ color changes, ‧ restructuring the links of the tree via “rotations”. The operations INSERT and DELETE cause modifications to the red-black tree:

21 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.18 Rotations RIGHT-ROTATE LEFT-ROTATE Rotations maintain the inorder ordering of keys: A rotation can be performed in O(1) time.

22 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.19 Insertion into a red-black tree IDEA: Insert x in tree. Color x red. Only red-black property 3 might be violated. Move the violation up the tree by recoloring until it can be fixed with rotations and recoloring. Example :

23 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.20 Insertion into a red-black tree IDEA: Insert x in tree. Color x red. Only red-black property 3 might be violated. Move the violation up the tree by recoloring until it can be fixed with rotations and recoloring. Example : ‧ Insert x =15. ‧ Recolor, moving the violation up the tree

24 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.21 ‧ RIGHT-ROTATE(18). Insertion into a red-black tree IDEA: Insert x in tree. Color x red. Only red-black property 3 might be violated. Move the violation up the tree by recoloring until it can be fixed with rotations and recoloring. Example : ‧ Insert x =15. ‧ Recolor, moving the violation up the tree

25 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.22 ‧ RIGHT-ROTATE(18). Insertion into a red-black tree IDEA: Insert x in tree. Color x red. Only red-black property 3 might be violated. Move the violation up the tree by recoloring until it can be fixed with rotations and recoloring. Example : ‧ Insert x =15. ‧ Recolor, moving the violation up the tree ‧ LEFT-ROTATE(7) and recolor.

26 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.23 ‧ RIGHT-ROTATE(18). Insertion into a red-black tree IDEA: Insert x in tree. Color x red. Only red-black property 3 might be violated. Move the violation up the tree by recoloring until it can be fixed with rotations and recoloring. Example : ‧ Insert x =15. ‧ Recolor, moving the violation up the tree ‧ LEFT-ROTATE(7) and recolor.

27 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.24 Pseudocode RB-INSERT (T, x) TREE-INSERT (T, x) color[x] ← RED ⊳ only RB property 3 can be violated while x ≠ root[T] and color[p[x]] = RED do if p[x] = left[p[p[x]] then y ← right[p[p[x]] ⊳ y = aunt/uncle of x if color[y] = RED then else if x = right[p[x]] then ⊳ Case 2 falls into Case 3 else color[root[T]] ← BLACK

28 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.25 Graphical notation Let denote a subtree with a black root. All ’s have the same black-height.

29 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.26 Case 1 Recolor (Or, children of A are swapped.) Push C’s black onto A and D, and recurse, since C’s parent may be red.

30 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.27 Case 2 LEFT-ROTATE (A) Transform to Case 3.

31 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.28 Case 3 RIGHT-ROTATE (C) Done! No more violations of RB property 3 are possible.

32 October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.29 Analysis ‧ Go up the tree performing Case 1, which only recolors nodes. ‧ If Case 2 or Case 3 occurs, perform 1 or 2 rotations, and terminate. Running time: O(lg n) with O(1) rotations. RB-DELETE — same asymptotic running time and number of rotations as RB-INSERT (see textbook).


Download ppt "October 19, 2005Copyright © 2001-5 by Erik D. Demaine and Charles E. LeisersonL7.1 Introduction to Algorithms LECTURE 8 Balanced Search Trees ‧ Binary."

Similar presentations


Ads by Google