Top Banner
Time Complexity of Basic BST Operations • Search, Insert, Delete – These operations visit the nodes along a root-to-leaf path – The number of nodes encountered on unique path depends on the shape of the tree and the position of the node in the tree
22

Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Dec 16, 2015

Download

Documents

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: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Time Complexity of Basic BST Operations

• Search, Insert, Delete– These operations visit the nodes along a root-to-

leaf path – The number of nodes encountered on unique path

depends on the shape of the tree and the position of the node in the tree

Page 2: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

O(h) where h is the height of the tree

• The height varies–A “worst-shape” BST –A “best-shape” BST–An “average-shape” BST

Worst-case running time of each operation?

Page 3: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Different Shapes of Tree

Page 4: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Balanced BST Can Do better

• BSTs are limited because of their bad worst-case performance O(n). A BST with this worst-case structure is no more efficient than a regular linked list

• Balanced search trees are trees whose heights in the worst case is O(lg n)

Page 5: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Balanced BST Can Do better

If the tree is perfectly balanced, we can store more than 16,000 elements and require at most 14 nodes to be checked to locate an element. How many nodes (in the worst case) would we have to check in a linked list?

0

1

2

3

.

10

.

13

.

h-1

Page 6: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

What Does it Mean to Balance a BST?

• Tentative Rule– Require that the left and right subtrees of the root

node have the same height

We can do better

Page 7: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

What Does it Mean to Balance a BST? (cont’d)

• Another Tentative Rule– Require that every node have left and right

subtrees of the same height

Too restrictive only perfectly balanced trees of 2k – 1 nodes would satisfy this criterion

Page 8: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

What Does it Mean to Balance BST? (cont’d)

• The Rule– Require that, for every node, the height of the left

and right subtrees can differ by at most one

Page 9: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Balancing a BST

• There are a number of techniques to properly balance a binary tree– Approach 1: take all the elements, place them in

an array, sort them, and then reconstruct the tree (global) (example, and algorithm)

– Approach 2: constantly restructuring the tree when new elements arrive or elements are deleted and lead to an unbalanced tree (i.e., self-balancing trees)

Page 10: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Approach 1: Reorder Data and Build BST

• When all data arrive, store all data in an array, sort the array. What is the root of the tree? – the middle element of the array

• Designate for the root of the BST the middle element of the array (i.e., the middle element of the array is the first element inserted into the BST)

• Continue inserting recursively on the left and right subarrays until all elements in the array have been inserted into the BST

• 1 2 3 4 5 6 7 (construct the tree)

Page 11: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Approach 1: Reorder Data and Build BST (cont’d)

• This approach has one serious drawback– All data must be put in an array before the BST

can be created– Unsuitable or very inefficient when the BST has to

be used while the data to be included in the BST are still coming

Page 12: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Approach 2: Self balancing with AVL Tree

• AVL trees offers another way to balance tree• AVL trees maintain balance of BSTs while

they are being created via insertions of data• Tree rebalancing can be performed locally if

only a portion of the tree is affected after insertion or deletion.

Page 13: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

AVL Trees

• AVL (Adel`son-Vel`skii and Landis) tree = – A BST– With the property: For every node, the heights

of the left and right subtrees differ at most by one

– Each node contains a value (-1, 1, 0) indicating which subtree is "heavier”

Page 14: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Balance Factor

– Each node is marked with a balance factor indicating which subtree is "heavier”

– Balance Factor: height (right subtree) minus height (left subtree)

– A balanced tree (-1, 1, 0)

1

1-1

0 0 1

0

Page 15: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.
Page 16: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

AVL Implementation issues:

– Insert and Delete are modified. They restructure the tree to make it balanced (if necessary)

Page 17: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Fixing Imbalances

An imbalance is detected when the height difference between two subtrees of a node becomes greater than 1 or smaller than -1

There are two cases of imbalances:

2

-1

0

-2

1

0

2

1

0

-2

-1

0or

or

CASE 1 CASE 2

Imbalance caused by inserting node in left subtree of left child or right subtree of right child (i.e., insertion occurs on the “outside”)

Imbalance caused by inserting node in right subtree of left child or left subtree of right child (i.e., insertion occurs on the “inside”)

Page 18: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Fixing Imbalances (cont’d)

Fixing an imbalance is done by rotating the tree There are two types of rotation:

single rotation for CASE 1 imbalances

double rotation for CASE 2 imbalances consists of two single rotations

The rotations must always preserve the BST property

Page 19: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Fixing Imbalances: Case 1

6

4

2 6

4

2

node with imbalance

A B

C

D

A B C D

This is a single right rotation. A single left rotation is symmetric.

right rotatenode 4 about 6

Page 20: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Fixing Imbalances: Case 1 (cont’d)

left rotate node Q about PThis is a single left rotation

Page 21: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Fixing Imbalances: Case 2

6

2

4

6

4

2

node with imbalance

A

B C

D

A B C D

STEP 1: left rotate node 4 about 2

6

4

2

A B

C

D

STEP2: right rotate node 4 about 6

node with imbalance

Page 22: Time Complexity of Basic BST Operations Search, Insert, Delete – These operations visit the nodes along a root-to- leaf path – The number of nodes encountered.

Fixing Imbalances: Case 2 (cont’d)

STEP 1: Right rotate R about Q

STEP 2: Left rotate R about P Note that P can be part of a larger AVL tree; it can be a child of some other node in the tree