SlideShare a Scribd company logo
1 of 67
Download to read offline
Algorithms

Sandeep Kumar Poonia
Head Of Dept. CS/IT
B.E., M.Tech., UGC-NET
LM-IAENG, LM-IACSIT,LM-CSTA, LM-AIRCC, LM-SCIEI, AM-UACEE
Algorithms
AVL Tree
Balanced binary tree
● The disadvantage of a binary search tree is that its height can
●

●
●
●
●

be as large as N-1
This means that the time needed to perform insertion and
deletion and many other operations can be O(N) in the worst
case
We want a tree with small height
A binary tree with N node has height at least (log N)
Thus, our goal is to keep the height of a binary search tree
O(log N)
Such trees are called balanced binary search trees. Examples
are AVL tree, red-black tree.
Binary Search Tree - Best Time
● All BST operations are O(h), where d is tree

depth
● minimum d is h  log2Nfor a binary tree


with N nodes
■ What is the best case tree?
■ What is the worst case tree?

● So, best case running time of BST operations

is O(log N)
Binary Search Tree - Worst Time
● Worst case running time is O(N)
■ What happens when you Insert elements in
ascending order?
○ Insert: 2, 4, 6, 8, 10, 12 into an empty BST

■ Problem: Lack of “balance”:
○ compare depths of left and right subtree
■ Unbalanced degenerate tree
Balanced and unbalanced BST
1

4
2

2

5

3

1

4
4
6
3

Is this “balanced”?

5

2
1

3

5

6
7

7
Approaches to balancing trees
● Don't balance
■ May end up with some nodes very deep
● Strict balance
■ The tree must always be balanced perfectly
● Pretty good balance
■ Only allow a little out of balance
● Adjust on access
■ Self-adjusting
Balancing Binary Search Trees
● Many algorithms exist for keeping binary

search trees balanced
■ Adelson-Velskii and Landis (AVL) trees

(height-balanced trees)
■ Splay trees and other self-adjusting trees
■ B-trees and other multiway search trees
AVL Tree is…
● Named after Adelson-Velskii and Landis

● the first dynamically balanced trees to be

propose
● Binary search tree with balance condition in
which the sub-trees of each node can differ by
at most 1 in their height
Definition of a balanced tree
● Ensure the depth = O(log N)

● Take O(log N) time for searching, insertion,

and deletion
● Every node must have left & right sub-trees of
the same height
An AVL tree has the following
properties:
Sub-trees of each
node can differ by
at most 1 in their
height
2. Every sub-trees is
an AVL tree
1.
AVL tree?

YES

NO

Each left sub-tree has
height 1 greater than each
right sub-tree

Left sub-tree has height 3,
but right sub-tree has height
1
AVL tree
Height of a node
● The height of a leaf is 1. The height of a null
pointer is zero.
● The height of an internal node is the maximum
height of its children plus 1
Note that this definition of height is different from the one we
defined previously (we defined the height of a leaf as zero
previously).
AVL Trees
10

10
5

5

20
3

3
1
2
1

3

20
43
AVL Trees
12

8

4

2

16

10

6

14
AVL Tree
-1
0
0

0
0

-1

0

1

0

AVL Tree

-2
1
0

AVL Tree
0

-1
0

0

Not an AVL Tree
n(2)

3

Height of an AVL Tree

4

n(1)

● Fact: The height of an AVL tree storing n keys is O(log n).

● Proof: Let us bound n(h): the minimum number of internal nodes
●
●
●
●

of an AVL tree of height h.
We easily see that n(1) = 1 and n(2) = 2
For n > 2, an AVL tree of height h contains the root node, one AVL
subtree of height n-1 and another of height n-2.
That is, n(h) = 1 + n(h-1) + n(h-2)
Knowing n(h-1) > n(h-2), we get n(h) > 2n(h-2). So
n(h) > 2n(h-2), n(h) > 4n(h-4), n(h) > 8n(n-6), … (by induction),
n(h) > 2in(h-2i)

● Solving the base case we get: n(h) > 2 h/2-1
● Taking logarithms: h < 2log n(h) +2
● Thus the height of an AVL tree is O(log n)
AVL - Good but not Perfect
Balance
● AVL trees are height-balanced binary search

trees
● Balance factor of a node
■ height(left subtree) - height(right subtree)

● An AVL tree has balance factor calculated at

every node
■ For every node, heights of left and right subtree

can differ by no more than 1
■ Store current heights in each node
Height of an AVL Tree
● N(h) = minimum number of nodes in an AVL

tree of height h.
● Basis
■ N(0) = 1, N(1) = 2

● Induction
■ N(h) = N(h-1) + N(h-2) + 1

h

● Solution (recall Fibonacci analysis)
■ N(h) > h (  1.62)
h-1

h-2
Height of an AVL Tree
● N(h) > h (  1.62)

● Suppose we have n nodes in an AVL tree of

height h.
■ n > N(h) (because N(h) was the minimum)
■ n > h hence log n > h (relatively well balanced

tree!!)
■ h < 1.44 log2n (i.e., Find takes O(log n))
Insertion

Insert 6

Imbalance at 8
Perform rotation with 7
Deletion

Delete 4

Imbalance at 3
Perform rotation with 2

Imbalance at 5
Perform rotation with 8
Key Points
● AVL tree remain balanced by applying

rotations, therefore it guarantees O(log N)
search time in a dynamic environment
● Tree can be re-balanced in at most O(log N)
time
Searching AVL Trees
● Searching an AVL tree is exactly the same as

searching a regular binary tree
■ all descendants to the right of a node are greater

than the node
■ all descendants to the left of a node are less than
the node
Inserting in AVL Tree
● Insertion is similar to regular binary tree
■ keep going left (or right) in the tree until a null
child is reached
■ insert a new node in this position
○ an inserted node is always a leaf to start with

● Major difference from binary tree
■ must check if any of the sub-trees in the tree have
become too unbalanced
○ search from inserted node to root looking for any node

with a balance factor of ±2
Inserting in AVL Tree
● A few points about tree inserts
■ the insert will be done recursively
■ the insert call will return true if the height of the
sub-tree has changed
○ since we are doing an insert, the height of the sub-tree

can only increase
■ if insert() returns true, balance factor of current

node needs to be adjusted
○ balance factor = height(right) – height(left)
 left sub-tree increases, balance factor decreases by 1
 right sub-tree increases, balance factor increases by 1

■ if balance factor equals ±2 for any node, the sub-

tree must be rebalanced
Inserting in AVL Tree
M(-1)

E(1)

M(0)

P(0)

insert(V)

E(1)

J(0)

P(1)

J(0)

M(-1)

E(1)

M(-2)

P(0)

J(0)

V(0)

insert(L)

E(-2)

P(0)

J(1)
L(0)

This tree needs to be fixed!
Re-Balancing a Tree
● To check if a tree needs to be rebalanced
■ start at the parent of the inserted node and journey

up the tree to the root
○ if a node’s balance factor becomes ±2 need to do a

rotation in the sub-tree rooted at the node
○ once sub-tree has been re-balanced, guaranteed that the
rest of the tree is balanced as well


can just return false from the insert() method

■ 4 possible cases for re-balancing
○ only 2 of them need to be considered


other 2 are identical but in the opposite direction
Insertions in AVL Trees
Let the node that needs rebalancing be .
There are 4 cases:
Outside Cases (require single rotation) :
1. Insertion into left subtree of left child of .
2. Insertion into right subtree of right child of .
Inside Cases (require double rotation) :
3. Insertion into right subtree of left child of .
4. Insertion into left subtree of right child of .
The rebalancing is performed through four separate
rotation algorithms.
AVL Insertion: Outside Case
Consider a valid
AVL subtree

j

k

h
h

h

X

Y

Z
AVL Insertion: Outside Case

j
k
h+1

h
h

Y
X

Inserting into X
destroys the AVL
property at node j

Z
AVL Insertion: Outside Case

j
k
h+1

h
h

Y
X

Do a “right rotation”

Z
Single right rotation

j
k
h+1

h
h

Y
X

Do a “right rotation”

Z
Outside Case Completed
“Right rotation” done!
(“Left rotation” is mirror
symmetric)

k
j

h+1

h

h

X

Y

Z

AVL property has been restored!
AVL Insertion: Inside Case
Consider a valid
AVL subtree

j

k
h

X

h
h

Y

Z
AVL Insertion: Inside Case
Inserting into Y
destroys the
AVL property
at node j

j
k

h

h

X

Does “right rotation”
restore balance?

h+1

Y

Z
AVL Insertion: Inside Case

k
j

h

X

“Right rotation”
does not restore
balance… now k is
out of balance
h

h+1

Z
Y
AVL Insertion: Inside Case
Consider the structure
of subtree Y…

j

k

h

h

X

h+1

Y

Z
AVL Insertion: Inside Case

j

Y = node i and
subtrees V and W

k

h

i

h

X

h+1

h or h-1

V

W

Z
AVL Insertion: Inside Case

j

We will do a left-right
“double rotation” . . .

k
Z

i

X
V

W
Double rotation : first rotation

j

left rotation complete

i
Z

k
W
X

V
Double rotation : second
rotation

j

Now do a right rotation

i
Z

k
W
X

V
Double rotation : second
rotation
right rotation complete
Balance has been
restored

i
j

k
h

h

h or h-1

X

V

W

Z
AVL Trees Example
AVL Trees Example
AVL Trees Example
AVL Trees Example
AVL Trees Example
AVL Trees Example
Example
● Insert 3 into the AVL tree
11

11

8

4
3

2/17/2014

20

16

4

27

3

20

8

16

27
Example
● Insert 5 into the AVL tree
11

11

8

4

16
5

2/17/2014

20

5

27

4

20

8

16

27
AVL Trees: Exercise
● Insertion order:
■ 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

2/17/2014
Deletion X in AVL Trees
● Deletion:
■ Case 1: if X is a leaf, delete X
■ Case 2: if X has 1 child, use it to replace X
■ Case 3: if X has 2 children, replace X with its

inorder predecessor (and recursively delete it)
● Rebalancing

2/17/2014
Delete 55 (case 1)
60
20

70

10
5

40
15

30

65
80

50

55

2/17/2014

85
90
Delete 55 (case 1)
60
20

70

10
5

40
15

30

65
80

50

55

2/17/2014

85
90
Delete 50 (case 2)
60
20

70

10
5

40
15

30

65
80

50

55

2/17/2014

85
90
Delete 50 (case 2)
60
20

70

10
5

40
15

30

65
50

55

2/17/2014

85
80

90
Delete 60 (case 3)
60
20

70

10
5

40
15

30

65
50

prev

55

2/17/2014

85
80

90
Delete 60 (case 3)
55
20

70

10
5

2/17/2014

40
15

30

65
50

85
80

90
Delete 55 (case 3)
55
20
10
5

2/17/2014

40
15

70

prev

30

65
50

85
80

90
Delete 55 (case 3)
50
20

70

10
5

2/17/2014

40
15

30

65

85
80

90
Delete 50 (case 3)
50
prev

20
10
5

2/17/2014

40
15

30

70
65

85
80

90
Delete 50 (case 3)
40
20
10
5

2/17/2014

70
30

15

65

85
80

90
Delete 40 (case 3)
40
20
10
5

2/17/2014

30
15

70

prev
65

85
80

90
Delete 40 : Rebalancing
30
20
10
5

2/17/2014

Case ?

15

70
65

85
80

90
Delete 40: after rebalancing
30
10

70
20

5
15

Single rotation is preferred!

2/17/2014

65

85
80

90
AVL Tree: analysis
● The depth of AVL Trees is at most logarithmic.
● So, all of the operations on AVL trees are also

logarithmic.
● The worst-case height is at most 44 percent
more than the minimum possible for binary
trees.

2/17/2014

More Related Content

What's hot (20)

My lectures circular queue
My lectures circular queueMy lectures circular queue
My lectures circular queue
 
Balanced Tree (AVL Tree & Red-Black Tree)
Balanced Tree (AVL Tree & Red-Black Tree)Balanced Tree (AVL Tree & Red-Black Tree)
Balanced Tree (AVL Tree & Red-Black Tree)
 
AVL Tree in Data Structure
AVL Tree in Data Structure AVL Tree in Data Structure
AVL Tree in Data Structure
 
Graph representation
Graph representationGraph representation
Graph representation
 
Breadth First Search & Depth First Search
Breadth First Search & Depth First SearchBreadth First Search & Depth First Search
Breadth First Search & Depth First Search
 
Avl tree
Avl treeAvl tree
Avl tree
 
Tree and binary tree
Tree and binary treeTree and binary tree
Tree and binary tree
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structure
 
Red black tree
Red black treeRed black tree
Red black tree
 
17. Trees and Graphs
17. Trees and Graphs17. Trees and Graphs
17. Trees and Graphs
 
Tree and graph
Tree and graphTree and graph
Tree and graph
 
Threaded Binary Tree.pptx
Threaded Binary Tree.pptxThreaded Binary Tree.pptx
Threaded Binary Tree.pptx
 
Binary search tree(bst)
Binary search tree(bst)Binary search tree(bst)
Binary search tree(bst)
 
Tree Traversal
Tree TraversalTree Traversal
Tree Traversal
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
Deque and its applications
Deque and its applicationsDeque and its applications
Deque and its applications
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
Hashing and Hashtable, application of hashing, advantages of hashing, disadva...
Hashing and Hashtable, application of hashing, advantages of hashing, disadva...Hashing and Hashtable, application of hashing, advantages of hashing, disadva...
Hashing and Hashtable, application of hashing, advantages of hashing, disadva...
 
Trees
TreesTrees
Trees
 
B trees
B treesB trees
B trees
 

Viewers also liked (6)

Heapsort quick sort
Heapsort quick sortHeapsort quick sort
Heapsort quick sort
 
10. grid security
10. grid security10. grid security
10. grid security
 
7. the grid ogsa
7. the grid ogsa7. the grid ogsa
7. the grid ogsa
 
An improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithmAn improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithm
 
11. dfs
11. dfs11. dfs
11. dfs
 
11. grid scheduling and resource managament
11. grid scheduling and resource managament11. grid scheduling and resource managament
11. grid scheduling and resource managament
 

Similar to Avl tree detailed

Similar to Avl tree detailed (20)

Avl trees
Avl treesAvl trees
Avl trees
 
Avl tree
Avl treeAvl tree
Avl tree
 
Lecture3
Lecture3Lecture3
Lecture3
 
AVL TREE PREPARED BY M V BRAHMANANDA REDDY
AVL TREE PREPARED BY M V BRAHMANANDA REDDYAVL TREE PREPARED BY M V BRAHMANANDA REDDY
AVL TREE PREPARED BY M V BRAHMANANDA REDDY
 
AVL Tree.pptx
AVL Tree.pptxAVL Tree.pptx
AVL Tree.pptx
 
Avl trees final
Avl trees finalAvl trees final
Avl trees final
 
Avl tree ppt
Avl tree pptAvl tree ppt
Avl tree ppt
 
avl insertion-rotation
avl insertion-rotationavl insertion-rotation
avl insertion-rotation
 
4.10.AVLTrees[1].ppt
4.10.AVLTrees[1].ppt4.10.AVLTrees[1].ppt
4.10.AVLTrees[1].ppt
 
Design data Analysis Avl Trees.pptx by piyush sir
Design data Analysis Avl Trees.pptx by piyush sirDesign data Analysis Avl Trees.pptx by piyush sir
Design data Analysis Avl Trees.pptx by piyush sir
 
Problems in parallel computations of tree functions
Problems in parallel computations of tree functionsProblems in parallel computations of tree functions
Problems in parallel computations of tree functions
 
avl.ppt
avl.pptavl.ppt
avl.ppt
 
avl.ppt
avl.pptavl.ppt
avl.ppt
 
Binary trees1
Binary trees1Binary trees1
Binary trees1
 
Lect 13, 14 (final)AVL Tree and Rotations.pdf
Lect 13, 14 (final)AVL Tree and Rotations.pdfLect 13, 14 (final)AVL Tree and Rotations.pdf
Lect 13, 14 (final)AVL Tree and Rotations.pdf
 
Ie
IeIe
Ie
 
data structures
data structuresdata structures
data structures
 
Red Black Trees
Red Black TreesRed Black Trees
Red Black Trees
 
C++ UNIT4.pptx
C++ UNIT4.pptxC++ UNIT4.pptx
C++ UNIT4.pptx
 
Adelson velskii Landis rotations based on
Adelson velskii Landis rotations based onAdelson velskii Landis rotations based on
Adelson velskii Landis rotations based on
 

More from Dr Sandeep Kumar Poonia

Modified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmModified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmDr Sandeep Kumar Poonia
 
Enhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmEnhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmDr Sandeep Kumar Poonia
 
Memetic search in differential evolution algorithm
Memetic search in differential evolution algorithmMemetic search in differential evolution algorithm
Memetic search in differential evolution algorithmDr Sandeep Kumar Poonia
 
Improved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithmImproved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithmDr Sandeep Kumar Poonia
 
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithmComparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithmDr Sandeep Kumar Poonia
 
A novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithmA novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithmDr Sandeep Kumar Poonia
 
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsMultiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsDr Sandeep Kumar Poonia
 
Sunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithmSunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithmDr Sandeep Kumar Poonia
 
New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm Dr Sandeep Kumar Poonia
 
Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...Dr Sandeep Kumar Poonia
 
Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...Dr Sandeep Kumar Poonia
 

More from Dr Sandeep Kumar Poonia (20)

Soft computing
Soft computingSoft computing
Soft computing
 
Modified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmModified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithm
 
Enhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmEnhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithm
 
RMABC
RMABCRMABC
RMABC
 
Memetic search in differential evolution algorithm
Memetic search in differential evolution algorithmMemetic search in differential evolution algorithm
Memetic search in differential evolution algorithm
 
Improved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithmImproved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithm
 
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithmComparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
 
A novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithmA novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithm
 
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsMultiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
 
Sunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithmSunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithm
 
New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm
 
A new approach of program slicing
A new approach of program slicingA new approach of program slicing
A new approach of program slicing
 
Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...
 
Enhanced abc algo for tsp
Enhanced abc algo for tspEnhanced abc algo for tsp
Enhanced abc algo for tsp
 
Database aggregation using metadata
Database aggregation using metadataDatabase aggregation using metadata
Database aggregation using metadata
 
Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...
 
Lecture28 tsp
Lecture28 tspLecture28 tsp
Lecture28 tsp
 
Lecture27 linear programming
Lecture27 linear programmingLecture27 linear programming
Lecture27 linear programming
 
Lecture26
Lecture26Lecture26
Lecture26
 
Lecture25
Lecture25Lecture25
Lecture25
 

Recently uploaded

Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 

Recently uploaded (20)

Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 

Avl tree detailed

  • 1. Algorithms Sandeep Kumar Poonia Head Of Dept. CS/IT B.E., M.Tech., UGC-NET LM-IAENG, LM-IACSIT,LM-CSTA, LM-AIRCC, LM-SCIEI, AM-UACEE
  • 3. Balanced binary tree ● The disadvantage of a binary search tree is that its height can ● ● ● ● ● be as large as N-1 This means that the time needed to perform insertion and deletion and many other operations can be O(N) in the worst case We want a tree with small height A binary tree with N node has height at least (log N) Thus, our goal is to keep the height of a binary search tree O(log N) Such trees are called balanced binary search trees. Examples are AVL tree, red-black tree.
  • 4. Binary Search Tree - Best Time ● All BST operations are O(h), where d is tree depth ● minimum d is h  log2Nfor a binary tree   with N nodes ■ What is the best case tree? ■ What is the worst case tree? ● So, best case running time of BST operations is O(log N)
  • 5. Binary Search Tree - Worst Time ● Worst case running time is O(N) ■ What happens when you Insert elements in ascending order? ○ Insert: 2, 4, 6, 8, 10, 12 into an empty BST ■ Problem: Lack of “balance”: ○ compare depths of left and right subtree ■ Unbalanced degenerate tree
  • 6. Balanced and unbalanced BST 1 4 2 2 5 3 1 4 4 6 3 Is this “balanced”? 5 2 1 3 5 6 7 7
  • 7. Approaches to balancing trees ● Don't balance ■ May end up with some nodes very deep ● Strict balance ■ The tree must always be balanced perfectly ● Pretty good balance ■ Only allow a little out of balance ● Adjust on access ■ Self-adjusting
  • 8. Balancing Binary Search Trees ● Many algorithms exist for keeping binary search trees balanced ■ Adelson-Velskii and Landis (AVL) trees (height-balanced trees) ■ Splay trees and other self-adjusting trees ■ B-trees and other multiway search trees
  • 9. AVL Tree is… ● Named after Adelson-Velskii and Landis ● the first dynamically balanced trees to be propose ● Binary search tree with balance condition in which the sub-trees of each node can differ by at most 1 in their height
  • 10. Definition of a balanced tree ● Ensure the depth = O(log N) ● Take O(log N) time for searching, insertion, and deletion ● Every node must have left & right sub-trees of the same height
  • 11. An AVL tree has the following properties: Sub-trees of each node can differ by at most 1 in their height 2. Every sub-trees is an AVL tree 1.
  • 12. AVL tree? YES NO Each left sub-tree has height 1 greater than each right sub-tree Left sub-tree has height 3, but right sub-tree has height 1
  • 13. AVL tree Height of a node ● The height of a leaf is 1. The height of a null pointer is zero. ● The height of an internal node is the maximum height of its children plus 1 Note that this definition of height is different from the one we defined previously (we defined the height of a leaf as zero previously).
  • 16. AVL Tree -1 0 0 0 0 -1 0 1 0 AVL Tree -2 1 0 AVL Tree 0 -1 0 0 Not an AVL Tree
  • 17. n(2) 3 Height of an AVL Tree 4 n(1) ● Fact: The height of an AVL tree storing n keys is O(log n). ● Proof: Let us bound n(h): the minimum number of internal nodes ● ● ● ● of an AVL tree of height h. We easily see that n(1) = 1 and n(2) = 2 For n > 2, an AVL tree of height h contains the root node, one AVL subtree of height n-1 and another of height n-2. That is, n(h) = 1 + n(h-1) + n(h-2) Knowing n(h-1) > n(h-2), we get n(h) > 2n(h-2). So n(h) > 2n(h-2), n(h) > 4n(h-4), n(h) > 8n(n-6), … (by induction), n(h) > 2in(h-2i) ● Solving the base case we get: n(h) > 2 h/2-1 ● Taking logarithms: h < 2log n(h) +2 ● Thus the height of an AVL tree is O(log n)
  • 18. AVL - Good but not Perfect Balance ● AVL trees are height-balanced binary search trees ● Balance factor of a node ■ height(left subtree) - height(right subtree) ● An AVL tree has balance factor calculated at every node ■ For every node, heights of left and right subtree can differ by no more than 1 ■ Store current heights in each node
  • 19. Height of an AVL Tree ● N(h) = minimum number of nodes in an AVL tree of height h. ● Basis ■ N(0) = 1, N(1) = 2 ● Induction ■ N(h) = N(h-1) + N(h-2) + 1 h ● Solution (recall Fibonacci analysis) ■ N(h) > h (  1.62) h-1 h-2
  • 20. Height of an AVL Tree ● N(h) > h (  1.62) ● Suppose we have n nodes in an AVL tree of height h. ■ n > N(h) (because N(h) was the minimum) ■ n > h hence log n > h (relatively well balanced tree!!) ■ h < 1.44 log2n (i.e., Find takes O(log n))
  • 21. Insertion Insert 6 Imbalance at 8 Perform rotation with 7
  • 22. Deletion Delete 4 Imbalance at 3 Perform rotation with 2 Imbalance at 5 Perform rotation with 8
  • 23. Key Points ● AVL tree remain balanced by applying rotations, therefore it guarantees O(log N) search time in a dynamic environment ● Tree can be re-balanced in at most O(log N) time
  • 24. Searching AVL Trees ● Searching an AVL tree is exactly the same as searching a regular binary tree ■ all descendants to the right of a node are greater than the node ■ all descendants to the left of a node are less than the node
  • 25. Inserting in AVL Tree ● Insertion is similar to regular binary tree ■ keep going left (or right) in the tree until a null child is reached ■ insert a new node in this position ○ an inserted node is always a leaf to start with ● Major difference from binary tree ■ must check if any of the sub-trees in the tree have become too unbalanced ○ search from inserted node to root looking for any node with a balance factor of ±2
  • 26. Inserting in AVL Tree ● A few points about tree inserts ■ the insert will be done recursively ■ the insert call will return true if the height of the sub-tree has changed ○ since we are doing an insert, the height of the sub-tree can only increase ■ if insert() returns true, balance factor of current node needs to be adjusted ○ balance factor = height(right) – height(left)  left sub-tree increases, balance factor decreases by 1  right sub-tree increases, balance factor increases by 1 ■ if balance factor equals ±2 for any node, the sub- tree must be rebalanced
  • 27. Inserting in AVL Tree M(-1) E(1) M(0) P(0) insert(V) E(1) J(0) P(1) J(0) M(-1) E(1) M(-2) P(0) J(0) V(0) insert(L) E(-2) P(0) J(1) L(0) This tree needs to be fixed!
  • 28. Re-Balancing a Tree ● To check if a tree needs to be rebalanced ■ start at the parent of the inserted node and journey up the tree to the root ○ if a node’s balance factor becomes ±2 need to do a rotation in the sub-tree rooted at the node ○ once sub-tree has been re-balanced, guaranteed that the rest of the tree is balanced as well  can just return false from the insert() method ■ 4 possible cases for re-balancing ○ only 2 of them need to be considered  other 2 are identical but in the opposite direction
  • 29. Insertions in AVL Trees Let the node that needs rebalancing be . There are 4 cases: Outside Cases (require single rotation) : 1. Insertion into left subtree of left child of . 2. Insertion into right subtree of right child of . Inside Cases (require double rotation) : 3. Insertion into right subtree of left child of . 4. Insertion into left subtree of right child of . The rebalancing is performed through four separate rotation algorithms.
  • 30. AVL Insertion: Outside Case Consider a valid AVL subtree j k h h h X Y Z
  • 31. AVL Insertion: Outside Case j k h+1 h h Y X Inserting into X destroys the AVL property at node j Z
  • 32. AVL Insertion: Outside Case j k h+1 h h Y X Do a “right rotation” Z
  • 33. Single right rotation j k h+1 h h Y X Do a “right rotation” Z
  • 34. Outside Case Completed “Right rotation” done! (“Left rotation” is mirror symmetric) k j h+1 h h X Y Z AVL property has been restored!
  • 35. AVL Insertion: Inside Case Consider a valid AVL subtree j k h X h h Y Z
  • 36. AVL Insertion: Inside Case Inserting into Y destroys the AVL property at node j j k h h X Does “right rotation” restore balance? h+1 Y Z
  • 37. AVL Insertion: Inside Case k j h X “Right rotation” does not restore balance… now k is out of balance h h+1 Z Y
  • 38. AVL Insertion: Inside Case Consider the structure of subtree Y… j k h h X h+1 Y Z
  • 39. AVL Insertion: Inside Case j Y = node i and subtrees V and W k h i h X h+1 h or h-1 V W Z
  • 40. AVL Insertion: Inside Case j We will do a left-right “double rotation” . . . k Z i X V W
  • 41. Double rotation : first rotation j left rotation complete i Z k W X V
  • 42. Double rotation : second rotation j Now do a right rotation i Z k W X V
  • 43. Double rotation : second rotation right rotation complete Balance has been restored i j k h h h or h-1 X V W Z
  • 50. Example ● Insert 3 into the AVL tree 11 11 8 4 3 2/17/2014 20 16 4 27 3 20 8 16 27
  • 51. Example ● Insert 5 into the AVL tree 11 11 8 4 16 5 2/17/2014 20 5 27 4 20 8 16 27
  • 52. AVL Trees: Exercise ● Insertion order: ■ 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 2/17/2014
  • 53. Deletion X in AVL Trees ● Deletion: ■ Case 1: if X is a leaf, delete X ■ Case 2: if X has 1 child, use it to replace X ■ Case 3: if X has 2 children, replace X with its inorder predecessor (and recursively delete it) ● Rebalancing 2/17/2014
  • 54. Delete 55 (case 1) 60 20 70 10 5 40 15 30 65 80 50 55 2/17/2014 85 90
  • 55. Delete 55 (case 1) 60 20 70 10 5 40 15 30 65 80 50 55 2/17/2014 85 90
  • 56. Delete 50 (case 2) 60 20 70 10 5 40 15 30 65 80 50 55 2/17/2014 85 90
  • 57. Delete 50 (case 2) 60 20 70 10 5 40 15 30 65 50 55 2/17/2014 85 80 90
  • 58. Delete 60 (case 3) 60 20 70 10 5 40 15 30 65 50 prev 55 2/17/2014 85 80 90
  • 59. Delete 60 (case 3) 55 20 70 10 5 2/17/2014 40 15 30 65 50 85 80 90
  • 60. Delete 55 (case 3) 55 20 10 5 2/17/2014 40 15 70 prev 30 65 50 85 80 90
  • 61. Delete 55 (case 3) 50 20 70 10 5 2/17/2014 40 15 30 65 85 80 90
  • 62. Delete 50 (case 3) 50 prev 20 10 5 2/17/2014 40 15 30 70 65 85 80 90
  • 63. Delete 50 (case 3) 40 20 10 5 2/17/2014 70 30 15 65 85 80 90
  • 64. Delete 40 (case 3) 40 20 10 5 2/17/2014 30 15 70 prev 65 85 80 90
  • 65. Delete 40 : Rebalancing 30 20 10 5 2/17/2014 Case ? 15 70 65 85 80 90
  • 66. Delete 40: after rebalancing 30 10 70 20 5 15 Single rotation is preferred! 2/17/2014 65 85 80 90
  • 67. AVL Tree: analysis ● The depth of AVL Trees is at most logarithmic. ● So, all of the operations on AVL trees are also logarithmic. ● The worst-case height is at most 44 percent more than the minimum possible for binary trees. 2/17/2014