Top Banner
1 B-Trees • Section 4.7
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.

Dec 24, 2015

Download

Documents

Stanley Willis
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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?