SlideShare a Scribd company logo
2
Most read
7
Most read
15
Most read
‘COMPLEXITY ANALYSIS OF RECURSIVE FUNCTION’
PRESENTED BY: PRASHI JAIN
ROLL NO. : MCA/25022/18
RECURSIVE ALGORITHM
A recursive function is a function that is defined in terms of itself. Similarly, an algorithm is said to
be recursive if the same algorithm is invoked in the body.
Direct recursion occurs when an algorithm calls itself .
Indirect recursion occurs when a function calls another function , eventually resulting in the original
method being called again.
A
A
A
B
PROPERTIES
• A recursive function can go infinite like a loop. To avoid infinite running of
recursive function, there are two properties that a recursive function must have −
Base criteria − There must be at least one base criteria or condition, such that, when this
condition is met the function stops calling itself recursively.
 Progressive approach − The recursive calls should progress in such a way that each time
a recursive call is made it comes closer to the base criteria.
ANALYSIS OF RECURSION
• One may argue why to use recursion, as the same task can be done with
iteration. The first reason is, recursion makes a program more readable and
because of latest enhanced CPU systems, recursion is more efficient than
iterations.
• There are mainly two ways for analysis of any algorithm :-
1- Time Complexity
2- Space Complexity
TIME COMPLEXITY
Time complexity is the amount of time it takes to run an algorithm.
In case of iterations, we take number of iterations to count the time complexity.
Likewise, in case of recursion, assuming everything is constant, we try to figure out
the number of times a recursive call is being made.
A call made to a function is Ο(1), hence the (n) number of times a recursive call is
made makes the recursive function Ο(n).
SPACE COMPLEXITY:
Space complexity is counted as what amount of extra space is required for a module to
execute.
 In case of iterations, the compiler hardly requires any extra space. The compiler
keeps updating the values of variables used in the iterations.
 In case of recursion, the system needs to store activation record each time a recursive
call is made. Hence, it is considered that space complexity of recursive function may
go higher than that of a function with iteration.
FINDING COMPLEXITY USING TFC
• We can find complexity of iteration algorithm using frequency count.
For example:
For(i=1;i<n;i++) n times
{
For(j=1 ; j<n ;j++) (n-1)n times
{
Statement; n2 times
}
}
The total frequency count for the above algorithm is 4n2 -1. Then the complexity of algorithm is O(n2).
WHY RECURRENCE RELATION ?
• When we use tfc (total frequency count) method for analysis of any algorithm then it is useful
for many algorithms . But Many algorithms such as Tower of Hanoi, selection sort , binary
search , Fibonacci and many more , where we use a recursive then finding the complexity of
that using tfc is not possible , because you can not exactly find out how many times a statement
will execute in a recursive function.
• For solving the above problem we use recurrence relation to find out the complexity of any
recursive algorithm.
WHAT IS A RECURRENCE RELATION?
When analysing a recursive function for its step count ( running time), we often obtain a recursive
formula. These recursive formulas are referred to as recurrence relations which are solved by repeated
substitutions method.
A recurrence relation, T(n), is a recursive function of an integer variable n.
Example:
1 if n=0
T(n)=
1+T(n-1) for n>o
The portion of the definition that does not contain T is called the base case of the recurrence relation.
The portion that contains T is called the recurrent or recursive case.
STEPS FOR FINDING COMPLEXITY OF RECURSIVE FUNCTION
 forming a recurrence relation
 solving the recurrence relation
FORMING A RECURRENCE RELATION
Example
function factorial(n)
1-2. if (n=1) then factorial=1;
Or else
3. Factorial =n*factorial(n-1)
And end factorial
The base case is reached when n = = 0. The method performs one comparison. Thus, the number of
operations when n = = 0, T(0), is some constant a.
When n > 0, the method performs two basic operations and then calls itself, using ONE recursive call, with
a parameter n – 1.
• Therefore the recurrence relation is:
T(0) = a for some constant a
T(n) = b + T(n – 1) for some constant b
SOLVING RECURRENCE RELATIONS
• Steps:
 Expand the recurrence relation.
 Express the expansion as a summation by plugging the recurrence back into itself
until you see a pattern.
 Evaluate the summation
FOR EXAMPLE: TOWER OF HANOI PROBLEM
Complexity Analysis of Recursive Function
ALGORITHM : TOWER OF HANOI
TOH(n ,x , y , z)
{
If(n>=1)
{
//put (n-1) disk to z by using y
TOH((n-1), x ,z , y)
// move larger disk to right place
Move : x- -> y
//put (n-1) disk to right place
TOH((n-1), z ,y ,x)
}
x y z
SOLUTION:
• The recurrence relation for the running time of the method hanoi is:
T(n) = a if n = 1
T(n) = 2T(n - 1) + b if n > 1
Expanding:
T(1) = a (1)
T(n) = 2T(n – 1) + b if n > 1 (2)
= 2[2T(n – 2) + b] + b = 22 T(n – 2) + 2b + b by substituting T(n – 1) in (2)
= 22 [2T(n – 3) + b] + 2b + b = 23 T(n – 3) + 22b + 2b + b by substituting T(n-2) in (2)
= 23 [2T(n – 4) + b] + 22b + 2b + b = 24 T(n – 4) + 23 b + 22b + 21b + 20b by substituting
T(n – 3) in (2)
= ……
= 2k T(n – k) + b[2k- 1 + 2k– 2 + . . . 21 + 20]
The base case is reached when n – k = 1  k = n – 1, we then have:
Therefore the complexity of Tower of Hanoi is O(2n).
REFERENCE:
Book:
Data structure and algorithms (GAV PAI)
Websites:
www.tutorialspoint.com
THANK YOU

More Related Content

PPT
PPT
Binary Search
PPT
Python Dictionaries and Sets
PPT
PDF
List,tuple,dictionary
PDF
Symbol table in compiler Design
PPTX
Water jug problem ai part 6
PPTX
RECURSIVE DESCENT PARSING
Binary Search
Python Dictionaries and Sets
List,tuple,dictionary
Symbol table in compiler Design
Water jug problem ai part 6
RECURSIVE DESCENT PARSING

What's hot (20)

PPTX
Tuple in python
PDF
Fake-Coin Problem
PPTX
Circular Queue data structure
PPT
Queue data structure
PPTX
Input-Buffering
PPTX
Multi ways trees
PPTX
Binary search
PPTX
Booth’s algorithm.(a014& a015)
PPTX
Merge Sort
PDF
sparse matrix in data structure
PPSX
PPT
Medians and order statistics
PPTX
Functions in python slide share
PPTX
Syntax Analysis in Compiler Design
PPTX
Shortest job first Scheduling (SJF)
PPTX
Context free grammar
PDF
OS - Process Concepts
PPTX
Pumping lemma
PPTX
Two dimensional arrays
Tuple in python
Fake-Coin Problem
Circular Queue data structure
Queue data structure
Input-Buffering
Multi ways trees
Binary search
Booth’s algorithm.(a014& a015)
Merge Sort
sparse matrix in data structure
Medians and order statistics
Functions in python slide share
Syntax Analysis in Compiler Design
Shortest job first Scheduling (SJF)
Context free grammar
OS - Process Concepts
Pumping lemma
Two dimensional arrays
Ad

Similar to Complexity Analysis of Recursive Function (20)

PPT
Data Structures- Part5 recursion
PDF
Lecture 5 6_7 - divide and conquer and method of solving recurrences
PPT
Ch10 Recursion
PPTX
Tail recursion
PPT
algo_vc_lecture8.ppt
PPTX
Unit-I Recursion.pptx
PPTX
Intro to super. advance algorithm..pptx
PPTX
35000120060_Nitesh Modi_CSE Presentation on recursion.pptx
PDF
opt_slides_ump.pdf
PPTX
Algorithm Design and Complexity - Course 3
PPTX
Analysis of Algorithms (1).pptx, asymptotic
PDF
6_12_13Asymptotic analysiskfnhlkjsbfbkjs.pdf
PPT
recursion.ppt
PPTX
lecture4-recursion.pptx
PPTX
Recursion
PPT
Data Structures- Part2 analysis tools
PPTX
Weekends with Competitive Programming
PPTX
3. D&C and Recurrence Relation.ppYtxVVVV
PPT
RecursionWeek8.ppt
PDF
Data Structures - Lecture 8 - Study Notes
Data Structures- Part5 recursion
Lecture 5 6_7 - divide and conquer and method of solving recurrences
Ch10 Recursion
Tail recursion
algo_vc_lecture8.ppt
Unit-I Recursion.pptx
Intro to super. advance algorithm..pptx
35000120060_Nitesh Modi_CSE Presentation on recursion.pptx
opt_slides_ump.pdf
Algorithm Design and Complexity - Course 3
Analysis of Algorithms (1).pptx, asymptotic
6_12_13Asymptotic analysiskfnhlkjsbfbkjs.pdf
recursion.ppt
lecture4-recursion.pptx
Recursion
Data Structures- Part2 analysis tools
Weekends with Competitive Programming
3. D&C and Recurrence Relation.ppYtxVVVV
RecursionWeek8.ppt
Data Structures - Lecture 8 - Study Notes
Ad

More from Meghaj Mallick (20)

PPT
24 partial-orderings
PPTX
PORTFOLIO BY USING HTML & CSS
PPTX
Introduction to Software Testing
PPTX
Introduction to System Programming
PPTX
MACRO ASSEBLER
PPTX
Icons, Image & Multimedia
PPTX
Project Tracking & SPC
PPTX
Peephole Optimization
PPTX
Routing in MANET
PPTX
Macro assembler
PPTX
Architecture and security in Vanet PPT
PPTX
Design Model & User Interface Design in Software Engineering
PPTX
Text Mining of Twitter in Data Mining
PPTX
DFS & BFS in Computer Algorithm
PPTX
Software Development Method
PPTX
Secant method in Numerical & Statistical Method
PPTX
Motivation in Organization
PPTX
Communication Skill
PPT
Partial-Orderings in Discrete Mathematics
PPTX
Hashing In Data Structure
24 partial-orderings
PORTFOLIO BY USING HTML & CSS
Introduction to Software Testing
Introduction to System Programming
MACRO ASSEBLER
Icons, Image & Multimedia
Project Tracking & SPC
Peephole Optimization
Routing in MANET
Macro assembler
Architecture and security in Vanet PPT
Design Model & User Interface Design in Software Engineering
Text Mining of Twitter in Data Mining
DFS & BFS in Computer Algorithm
Software Development Method
Secant method in Numerical & Statistical Method
Motivation in Organization
Communication Skill
Partial-Orderings in Discrete Mathematics
Hashing In Data Structure

Recently uploaded (20)

PPTX
Emphasizing It's Not The End 08 06 2025.pptx
PPTX
Non-Verbal-Communication .mh.pdf_110245_compressed.pptx
DOCX
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
PPTX
Learning-Plan-5-Policies-and-Practices.pptx
PPTX
The Effect of Human Resource Management Practice on Organizational Performanc...
PPTX
An Unlikely Response 08 10 2025.pptx
PPT
The Effect of Human Resource Management Practice on Organizational Performanc...
PPTX
Project and change Managment: short video sequences for IBA
PPTX
S. Anis Al Habsyi & Nada Shobah - Klasifikasi Hambatan Depresi.pptx
PPTX
Intro to ISO 9001 2015.pptx wareness raising
PPTX
Relationship Management Presentation In Banking.pptx
PPTX
Tablets And Capsule Preformulation Of Paracetamol
PPTX
ART-APP-REPORT-FINctrwxsg f fuy L-na.pptx
PPTX
INTERNATIONAL LABOUR ORAGNISATION PPT ON SOCIAL SCIENCE
PPT
First Aid Training Presentation Slides.ppt
PPTX
_ISO_Presentation_ISO 9001 and 45001.pptx
PPTX
PHIL.-ASTRONOMY-AND-NAVIGATION of ..pptx
PPTX
nose tajweed for the arabic alphabets for the responsive
PDF
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
PPTX
Introduction-to-Food-Packaging-and-packaging -materials.pptx
Emphasizing It's Not The End 08 06 2025.pptx
Non-Verbal-Communication .mh.pdf_110245_compressed.pptx
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
Learning-Plan-5-Policies-and-Practices.pptx
The Effect of Human Resource Management Practice on Organizational Performanc...
An Unlikely Response 08 10 2025.pptx
The Effect of Human Resource Management Practice on Organizational Performanc...
Project and change Managment: short video sequences for IBA
S. Anis Al Habsyi & Nada Shobah - Klasifikasi Hambatan Depresi.pptx
Intro to ISO 9001 2015.pptx wareness raising
Relationship Management Presentation In Banking.pptx
Tablets And Capsule Preformulation Of Paracetamol
ART-APP-REPORT-FINctrwxsg f fuy L-na.pptx
INTERNATIONAL LABOUR ORAGNISATION PPT ON SOCIAL SCIENCE
First Aid Training Presentation Slides.ppt
_ISO_Presentation_ISO 9001 and 45001.pptx
PHIL.-ASTRONOMY-AND-NAVIGATION of ..pptx
nose tajweed for the arabic alphabets for the responsive
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
Introduction-to-Food-Packaging-and-packaging -materials.pptx

Complexity Analysis of Recursive Function

  • 1. ‘COMPLEXITY ANALYSIS OF RECURSIVE FUNCTION’ PRESENTED BY: PRASHI JAIN ROLL NO. : MCA/25022/18
  • 2. RECURSIVE ALGORITHM A recursive function is a function that is defined in terms of itself. Similarly, an algorithm is said to be recursive if the same algorithm is invoked in the body. Direct recursion occurs when an algorithm calls itself . Indirect recursion occurs when a function calls another function , eventually resulting in the original method being called again. A A A B
  • 3. PROPERTIES • A recursive function can go infinite like a loop. To avoid infinite running of recursive function, there are two properties that a recursive function must have − Base criteria − There must be at least one base criteria or condition, such that, when this condition is met the function stops calling itself recursively.  Progressive approach − The recursive calls should progress in such a way that each time a recursive call is made it comes closer to the base criteria.
  • 4. ANALYSIS OF RECURSION • One may argue why to use recursion, as the same task can be done with iteration. The first reason is, recursion makes a program more readable and because of latest enhanced CPU systems, recursion is more efficient than iterations. • There are mainly two ways for analysis of any algorithm :- 1- Time Complexity 2- Space Complexity
  • 5. TIME COMPLEXITY Time complexity is the amount of time it takes to run an algorithm. In case of iterations, we take number of iterations to count the time complexity. Likewise, in case of recursion, assuming everything is constant, we try to figure out the number of times a recursive call is being made. A call made to a function is Ο(1), hence the (n) number of times a recursive call is made makes the recursive function Ο(n).
  • 6. SPACE COMPLEXITY: Space complexity is counted as what amount of extra space is required for a module to execute.  In case of iterations, the compiler hardly requires any extra space. The compiler keeps updating the values of variables used in the iterations.  In case of recursion, the system needs to store activation record each time a recursive call is made. Hence, it is considered that space complexity of recursive function may go higher than that of a function with iteration.
  • 7. FINDING COMPLEXITY USING TFC • We can find complexity of iteration algorithm using frequency count. For example: For(i=1;i<n;i++) n times { For(j=1 ; j<n ;j++) (n-1)n times { Statement; n2 times } } The total frequency count for the above algorithm is 4n2 -1. Then the complexity of algorithm is O(n2).
  • 8. WHY RECURRENCE RELATION ? • When we use tfc (total frequency count) method for analysis of any algorithm then it is useful for many algorithms . But Many algorithms such as Tower of Hanoi, selection sort , binary search , Fibonacci and many more , where we use a recursive then finding the complexity of that using tfc is not possible , because you can not exactly find out how many times a statement will execute in a recursive function. • For solving the above problem we use recurrence relation to find out the complexity of any recursive algorithm.
  • 9. WHAT IS A RECURRENCE RELATION? When analysing a recursive function for its step count ( running time), we often obtain a recursive formula. These recursive formulas are referred to as recurrence relations which are solved by repeated substitutions method. A recurrence relation, T(n), is a recursive function of an integer variable n. Example: 1 if n=0 T(n)= 1+T(n-1) for n>o The portion of the definition that does not contain T is called the base case of the recurrence relation. The portion that contains T is called the recurrent or recursive case.
  • 10. STEPS FOR FINDING COMPLEXITY OF RECURSIVE FUNCTION  forming a recurrence relation  solving the recurrence relation
  • 11. FORMING A RECURRENCE RELATION Example function factorial(n) 1-2. if (n=1) then factorial=1; Or else 3. Factorial =n*factorial(n-1) And end factorial The base case is reached when n = = 0. The method performs one comparison. Thus, the number of operations when n = = 0, T(0), is some constant a. When n > 0, the method performs two basic operations and then calls itself, using ONE recursive call, with a parameter n – 1. • Therefore the recurrence relation is: T(0) = a for some constant a T(n) = b + T(n – 1) for some constant b
  • 12. SOLVING RECURRENCE RELATIONS • Steps:  Expand the recurrence relation.  Express the expansion as a summation by plugging the recurrence back into itself until you see a pattern.  Evaluate the summation
  • 13. FOR EXAMPLE: TOWER OF HANOI PROBLEM
  • 15. ALGORITHM : TOWER OF HANOI TOH(n ,x , y , z) { If(n>=1) { //put (n-1) disk to z by using y TOH((n-1), x ,z , y) // move larger disk to right place Move : x- -> y //put (n-1) disk to right place TOH((n-1), z ,y ,x) } x y z
  • 16. SOLUTION: • The recurrence relation for the running time of the method hanoi is: T(n) = a if n = 1 T(n) = 2T(n - 1) + b if n > 1
  • 17. Expanding: T(1) = a (1) T(n) = 2T(n – 1) + b if n > 1 (2) = 2[2T(n – 2) + b] + b = 22 T(n – 2) + 2b + b by substituting T(n – 1) in (2) = 22 [2T(n – 3) + b] + 2b + b = 23 T(n – 3) + 22b + 2b + b by substituting T(n-2) in (2) = 23 [2T(n – 4) + b] + 22b + 2b + b = 24 T(n – 4) + 23 b + 22b + 21b + 20b by substituting T(n – 3) in (2) = …… = 2k T(n – k) + b[2k- 1 + 2k– 2 + . . . 21 + 20] The base case is reached when n – k = 1  k = n – 1, we then have: Therefore the complexity of Tower of Hanoi is O(2n).
  • 18. REFERENCE: Book: Data structure and algorithms (GAV PAI) Websites: www.tutorialspoint.com