12
1 B-Trees • Section 4.7

1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

Embed Size (px)

Citation preview

Page 1: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

1

B-Trees• Section 4.7

Page 2: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

2

AVL (Adelson-Velskii and Landis) Trees

• AVL tree is binary search tree with balance condition– To ensure depth of the tree is O(log(N))– And consequently, search complexity bound O(log(N))

• Balance condition– For every node in tree, height of left and right subtree can

differ by at most 1

• How to maintain balance condition?– Rotate nodes if condition violated when inserting nodes– Assuming lazy deletion

Page 3: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

3

B-Trees: Problem with Big `O’ notation

• Big ‘O’ assumes that all operations take equal time• Suppose all data does not fit in memory• Then some part of data may be stored on hard disk

• CPU speed is in billions of instructions per second – 3GHz machines common now

• Equals roughly 3000 million instructions per seconds

• Typical disk speeds about 7,200 RPM– Roughly 120 disk accesses per second

• So accessing disk is incredibly expensive– We may be willing to do more computation to organize our data

better and make fewer disk accesses

Page 4: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

4

M-ary Trees

• Allows up to M children for each node– Instead of max two for binary trees

• A complete M-ary tree of N nodes has a depth of logMN

• Example of complete 5-ary tree of 31 nodes

Page 5: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

5

M-ary search tree

• Similar to binary search tree, except that

• Each node has (M-1) keys to decide which of the M branches to follow.

• Larger M smaller tree depth

• But how to make M-ary tree balanced?

Page 6: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

6

B-Tree (or Balanced Trees)

• B-Tree is an M-ary search tree with the following balancing restrictions

1. Data items are stored at the leaves

2. Non-leaf nodes store up to M-1 keys to guide the searching• Key i represents the smallest key in subtree (i+1)

The root is either a leaf, or has between 2 to M children All non-leaf nodes have between ceil(M/2) and M

children All leaves are at the same depth and have between

ceil(L/2) and L data items, for some L.

Page 7: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

7

B-Tree Example

• M=5, L=5

Page 8: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

8

B-Tree: Inserting a value

After insertion of 57. Simply rearrange data in the correct leaf.

Page 9: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

9

B-Tree: Inserting a value (cont’d)

Inserting 55. Splits a full leaf into two leaves.

Page 10: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

10

B-Tree: Inserting a value (contd)

Insertion of 40.Splits a leaf into two leaves.Also splits the parent node.

Page 11: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

11

B-tree: Deletion of a value

Deletion of 99Causes combination of two leaves into one.Can recursively combine non-leaves

Page 12: 1 B-Trees Section 4.7. 2 AVL (Adelson-Velskii and Landis) Trees AVL tree is binary search tree with balance condition –To ensure depth of the tree is

12

Questions

• How does the height of the tree grow?• How does the height of the tree reduce?• How else can we handle insertion, without splitting a

node?