SlideShare a Scribd company logo
7
Most read
10
Most read
13
Most read
1
Data Structures
Performance Analysis
2
Fundamental Concepts
Some fundamental concepts that you should
know:
– Dynamic memory allocation.
– Recursion.
– Performance analysis.
3
Performance Analysis
• There are problems and algorithms to solve them.
• Problems and problem instances.
• Example: Sorting data in ascending order.
– Problem: Sorting
– Problem Instance: e.g. sorting data (2 3 9 5 6 8)
– Algorithms: Bubble sort, Merge sort, Quick sort,
Selection sort, etc.
• Which is the best algorithm for the problem? How
do we judge?
4
Performance Analysis
• Two criteria are used to judge algorithms:
(i) time complexity (ii) space complexity.
• Space Complexity of an algorithm is the
amount of memory it needs to run to
completion.
• Time Complexity of an algorithm is the
amount of CPU time it needs to run to
completion.
5
Space Complexity
• Memory space S(P) needed by a program P,
consists of two components:
– A fixed part: needed for instruction space (byte
code), simple variable space, constants space
etc.  c
– A variable part: dependent on a particular
instance of input and output data. 
Sp(instance)
• S(P) = c + Sp(instance)
6
Space Complexity: Example 1
1. Algorithm abc (a, b, c)
2. {
3. return a+b+b*c+(a+b-c)/(a+b)+4.0;
4. }
For every instance 3 computer words
required to store variables: a, b, and c.
Therefore Sp()= 3. S(P) = 3.
7
Space Complexity: Example 2
1. Algorithm Sum(a[], n)
2. {
3. s:= 0.0;
4. for i = 1 to n do
5. s := s + a[i];
6. return s;
7. }
8
Space Complexity: Example 2.
• Every instance needs to store array a[] & n.
– Space needed to store n = 1 word.
– Space needed to store a[ ] = n floating point
words (or at least n
words)
– Space needed to store i and s = 2 words
• Sp(n) = (n + 3). Hence S(P) = (n + 3).
9
Time Complexity
• Time required T(P) to run a program P also
consists of two components:
– A fixed part: compile time which is
independent of the problem instance  c.
– A variable part: run time which depends on the
problem instance  tp(instance)
• T(P) = c + tp(instance)
10
Time Complexity
• How to measure T(P)?
– Measure experimentally, using a “stop watch”
 T(P) obtained in secs, msecs.
– Count program steps  T(P) obtained as a step
count.
• Fixed part is usually ignored; only the
variable part tp() is measured.
11
Time Complexity
• What is a program step?
– a+b+b*c+(a+b)/(a-b)  one step;
– comments  zero steps;
–while (<expr>) do  step count equal to
the number of times <expr> is executed.
–for i=<expr> to <expr1> do  step count
equal to number of times <expr1> is checked.
12
Time Complexity: Example 1
Statements S/E Freq. Total
1 Algorithm Sum(a[],n) 0 - 0
2 { 0 - 0
3 S = 0.0; 1 1 1
4 for i=1 to n do 1 n+1 n+1
5 s = s+a[i]; 1 n n
6 return s; 1 1 1
7 } 0 - 0
2n+3
13
Time Complexity: Example 2
Statements S/E Freq. Total
1 Algorithm Sum(a[],n,m) 0 - 0
2 { 0 - 0
3 for i=1 to n do; 1 n+1 n+1
4 for j=1 to m do 1 n(m+1) n(m+1)
5 s = s+a[i][j]; 1 nm nm
6 return s; 1 1 1
2nm+2n+2
14
Performance Measurement
• Which is better?
– T(P1) = (n+1) or T(P2) = (n2 + 5).
– T(P1) = log (n2 + 1)/n! or T(P2) = nn(nlogn)/n2.
• Complex step count functions are difficult
to compare.
• For comparing, ‘rate of growth’ of time and
space complexity functions is easy and
sufficient.
15
Big O Notation
• Big O of a function gives us ‘rate of growth’ of the
step count function f(n), in terms of a simple
function g(n), which is easy to compare.
• Definition: [Big O] The function f(n) = O(g(n))
(big ‘oh’ of g of n) iff there exist positive
constants c and n0 such that f(n) <= c*g(n) for all
n, n>=n0. See graph on next slide.
• Example: f(n) = 3n+2 is O(n) because 3n+2 <= 4n
for all n >= 2. c = 4, n0 = 2. Here g(n) = n.
16
Big O Notation
= n0
17
Big O Notation
• Example: f(n) = 10n2+4n+2 is O(n2)
because 10n2+4n+2 <= 11n2 for all n >=5.
• Example: f(n) = 6*2n+n2 is O(2n) because
6*2n+n2 <=7*2n for all n>=4.
• Algorithms can be: O(1)  constant; O(log
n)  logrithmic; O(nlogn); O(n) linear;
O(n2)  quadratic; O(n3)  cubic; O(2n) 
exponential.
18
Big O Notation
• Now it is easy to compare time or space
complexities of algorithms. Which
algorithm complexity is better?
– T(P1) = O(n) or T(P2) = O(n2)
– T(P1) = O(1) or T(P2) = O(log n)
– T(P1) = O(2n) or T(P2) = O(n10)
19
Some Results
Sum of two functions: If f(n) = f1(n) + f2(n), and
f1(n) is O(g1(n)) and f2(n) is O(g2(n)), then f(n) =
O(max(|g1(n)|, |g2(n)|)).
Product of two functions: If f(n) = f1(n)* f2(n), and
f1(n) is O(g1(n)) and f2(n) is O(g2(n)), then f(n) =
O(g1(n)* g2(n)).

More Related Content

PPTX
Denormalization
Sohail Haider
 
PDF
UNIT I LINEAR DATA STRUCTURES – LIST
Kathirvel Ayyaswamy
 
PPT
Chapter 5 Syntax Directed Translation
Radhakrishnan Chinnusamy
 
PPT
Complexity of Algorithm
Muhammad Muzammal
 
PPTX
Stressen's matrix multiplication
Kumar
 
PDF
P, NP, NP-Complete, and NP-Hard
Animesh Chaturvedi
 
DOCX
SCSJ3553 - Artificial Intelligence Final Exam paper - UTM
Abdul Khaliq
 
Denormalization
Sohail Haider
 
UNIT I LINEAR DATA STRUCTURES – LIST
Kathirvel Ayyaswamy
 
Chapter 5 Syntax Directed Translation
Radhakrishnan Chinnusamy
 
Complexity of Algorithm
Muhammad Muzammal
 
Stressen's matrix multiplication
Kumar
 
P, NP, NP-Complete, and NP-Hard
Animesh Chaturvedi
 
SCSJ3553 - Artificial Intelligence Final Exam paper - UTM
Abdul Khaliq
 

What's hot (20)

PDF
Data Visualization With R
Rsquared Academy
 
PPT
Algorithm analysis
sumitbardhan
 
PPT
Lecture 1 data structures and algorithms
Aakash deep Singhal
 
PDF
3.1 tuple relational_calculus
Utkarsh De
 
PPTX
decision tree regression
Akhilesh Joshi
 
PPTX
Data Dictionary
Vishal Anand
 
PPT
similarity measure
ZHAO Sam
 
PPTX
Greedy Algorithm - Knapsack Problem
Madhu Bala
 
PPTX
Python Functions
Mohammed Sikander
 
PPTX
Query decomposition in data base
Salman Memon
 
PDF
Algorithms Lecture 2: Analysis of Algorithms I
Mohamed Loey
 
PPT
standard template library(STL) in C++
•sreejith •sree
 
PPTX
NLP_KASHK:Minimum Edit Distance
Hemantha Kulathilake
 
PDF
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
PPT
DESIGN AND ANALYSIS OF ALGORITHMS
Gayathri Gaayu
 
PPT
Hashing PPT
Saurabh Kumar
 
PPT
Dinive conquer algorithm
Mohd Arif
 
PPTX
Knapsack problem using greedy approach
padmeshagrekar
 
PPTX
Enums in c
Vijayananda Ratnam Ch
 
PPTX
C Programming: Structure and Union
Selvaraj Seerangan
 
Data Visualization With R
Rsquared Academy
 
Algorithm analysis
sumitbardhan
 
Lecture 1 data structures and algorithms
Aakash deep Singhal
 
3.1 tuple relational_calculus
Utkarsh De
 
decision tree regression
Akhilesh Joshi
 
Data Dictionary
Vishal Anand
 
similarity measure
ZHAO Sam
 
Greedy Algorithm - Knapsack Problem
Madhu Bala
 
Python Functions
Mohammed Sikander
 
Query decomposition in data base
Salman Memon
 
Algorithms Lecture 2: Analysis of Algorithms I
Mohamed Loey
 
standard template library(STL) in C++
•sreejith •sree
 
NLP_KASHK:Minimum Edit Distance
Hemantha Kulathilake
 
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
DESIGN AND ANALYSIS OF ALGORITHMS
Gayathri Gaayu
 
Hashing PPT
Saurabh Kumar
 
Dinive conquer algorithm
Mohd Arif
 
Knapsack problem using greedy approach
padmeshagrekar
 
C Programming: Structure and Union
Selvaraj Seerangan
 
Ad

Similar to ALGORITHM-ANALYSIS.ppt (20)

PPTX
BCSE202Lkkljkljkbbbnbnghghjghghghghghghghgh
shivapatil54
 
PPTX
02 Introduction to Data Structures & Algorithms.pptx
mettlehenry573
 
PDF
DSA
rrupa2
 
PPTX
Searching Algorithms
Afaq Mansoor Khan
 
PDF
Chapter One.pdf
abay golla
 
PDF
Data Structures Notes
RobinRohit2
 
PPTX
daa18d8d-d333-4398-94dd-a46802d88d79.pptx
yvtinsane
 
PPTX
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
shashashashashank
 
PPTX
Unit i basic concepts of algorithms
sangeetha s
 
PPT
Basics of data structure types of data structures
kavita20193
 
PDF
Algorithm analysis
Budditha Hettige
 
PPTX
Design and Analysis of Algorithms.pptx
Syed Zaid Irshad
 
PPTX
Algorithm Complexity and Main Concepts
Adelina Ahadova
 
PPT
Data Structure and Algorithm chapter two, This material is for Data Structure...
bekidea
 
PPTX
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
AntareepMajumder
 
PDF
Data Structure & Algorithms - Introduction
babuk110
 
PPTX
DAA-Unit1.pptx
NishaS88
 
PDF
DATA STRUCTURE
RobinRohit2
 
PDF
DATA STRUCTURE.pdf
ibrahim386946
 
PDF
Time and Space Complexity
Ashutosh Satapathy
 
BCSE202Lkkljkljkbbbnbnghghjghghghghghghghgh
shivapatil54
 
02 Introduction to Data Structures & Algorithms.pptx
mettlehenry573
 
DSA
rrupa2
 
Searching Algorithms
Afaq Mansoor Khan
 
Chapter One.pdf
abay golla
 
Data Structures Notes
RobinRohit2
 
daa18d8d-d333-4398-94dd-a46802d88d79.pptx
yvtinsane
 
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
shashashashashank
 
Unit i basic concepts of algorithms
sangeetha s
 
Basics of data structure types of data structures
kavita20193
 
Algorithm analysis
Budditha Hettige
 
Design and Analysis of Algorithms.pptx
Syed Zaid Irshad
 
Algorithm Complexity and Main Concepts
Adelina Ahadova
 
Data Structure and Algorithm chapter two, This material is for Data Structure...
bekidea
 
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
AntareepMajumder
 
Data Structure & Algorithms - Introduction
babuk110
 
DAA-Unit1.pptx
NishaS88
 
DATA STRUCTURE
RobinRohit2
 
DATA STRUCTURE.pdf
ibrahim386946
 
Time and Space Complexity
Ashutosh Satapathy
 
Ad

Recently uploaded (20)

PPTX
Global journeys: estimating international migration
Office for National Statistics
 
PDF
A Systems Thinking Approach to Algorithmic Fairness.pdf
Epistamai
 
PPTX
Data Security Breach: Immediate Action Plan
varmabhuvan266
 
PPTX
artificial intelligence deeplearning-200712115616.pptx
revathi148366
 
PDF
Mastering Query Optimization Techniques for Modern Data Engineers
Accentfuture
 
PPTX
Presentation1.pptxvhhh. H ycycyyccycycvvv
ItratBatool16
 
PDF
Data Analyst Certificate Programs for Beginners | IABAC
Seenivasan
 
PDF
CH2-MODEL-SETUP-v2017.1-JC-APR27-2017.pdf
jcc00023con
 
PPTX
Economic Sector Performance Recovery.pptx
yulisbaso2020
 
PDF
Linux OS guide to know, operate. Linux Filesystem, command, users and system
Kiran Maharjan
 
PPTX
GR3-PPTFINAL (1).pptx 0.91 MbHIHUHUGG,HJGH
DarylArellaga1
 
PDF
Digital Infrastructure – Powering the Connected Age
Heera Yadav
 
PPTX
Measurement of Afordability for Water Supply and Sanitation in Bangladesh .pptx
akmibrahimbd
 
PDF
TCP_IP for Programmers ------ slides.pdf
Souhailsouhail5
 
PPTX
Data-Driven Machine Learning for Rail Infrastructure Health Monitoring
Sione Palu
 
PPTX
batch data Retailer Data management Project.pptx
sumitmundhe77
 
PPT
Chapter 3 METAL JOINING.pptnnnnnnnnnnnnn
JanakiRaman206018
 
PPTX
1intro to AI.pptx AI components & composition
ssuserb993e5
 
PDF
1 Simple and Compound Interest_953c061c981ff8640f0b8e733b245589.pdf
JaexczJol060205
 
PDF
TIC ACTIVIDAD 1geeeeeeeeeeeeeeeeeeeeeeeeeeeeeer3.pdf
Thais Ruiz
 
Global journeys: estimating international migration
Office for National Statistics
 
A Systems Thinking Approach to Algorithmic Fairness.pdf
Epistamai
 
Data Security Breach: Immediate Action Plan
varmabhuvan266
 
artificial intelligence deeplearning-200712115616.pptx
revathi148366
 
Mastering Query Optimization Techniques for Modern Data Engineers
Accentfuture
 
Presentation1.pptxvhhh. H ycycyyccycycvvv
ItratBatool16
 
Data Analyst Certificate Programs for Beginners | IABAC
Seenivasan
 
CH2-MODEL-SETUP-v2017.1-JC-APR27-2017.pdf
jcc00023con
 
Economic Sector Performance Recovery.pptx
yulisbaso2020
 
Linux OS guide to know, operate. Linux Filesystem, command, users and system
Kiran Maharjan
 
GR3-PPTFINAL (1).pptx 0.91 MbHIHUHUGG,HJGH
DarylArellaga1
 
Digital Infrastructure – Powering the Connected Age
Heera Yadav
 
Measurement of Afordability for Water Supply and Sanitation in Bangladesh .pptx
akmibrahimbd
 
TCP_IP for Programmers ------ slides.pdf
Souhailsouhail5
 
Data-Driven Machine Learning for Rail Infrastructure Health Monitoring
Sione Palu
 
batch data Retailer Data management Project.pptx
sumitmundhe77
 
Chapter 3 METAL JOINING.pptnnnnnnnnnnnnn
JanakiRaman206018
 
1intro to AI.pptx AI components & composition
ssuserb993e5
 
1 Simple and Compound Interest_953c061c981ff8640f0b8e733b245589.pdf
JaexczJol060205
 
TIC ACTIVIDAD 1geeeeeeeeeeeeeeeeeeeeeeeeeeeeeer3.pdf
Thais Ruiz
 

ALGORITHM-ANALYSIS.ppt

  • 2. 2 Fundamental Concepts Some fundamental concepts that you should know: – Dynamic memory allocation. – Recursion. – Performance analysis.
  • 3. 3 Performance Analysis • There are problems and algorithms to solve them. • Problems and problem instances. • Example: Sorting data in ascending order. – Problem: Sorting – Problem Instance: e.g. sorting data (2 3 9 5 6 8) – Algorithms: Bubble sort, Merge sort, Quick sort, Selection sort, etc. • Which is the best algorithm for the problem? How do we judge?
  • 4. 4 Performance Analysis • Two criteria are used to judge algorithms: (i) time complexity (ii) space complexity. • Space Complexity of an algorithm is the amount of memory it needs to run to completion. • Time Complexity of an algorithm is the amount of CPU time it needs to run to completion.
  • 5. 5 Space Complexity • Memory space S(P) needed by a program P, consists of two components: – A fixed part: needed for instruction space (byte code), simple variable space, constants space etc.  c – A variable part: dependent on a particular instance of input and output data.  Sp(instance) • S(P) = c + Sp(instance)
  • 6. 6 Space Complexity: Example 1 1. Algorithm abc (a, b, c) 2. { 3. return a+b+b*c+(a+b-c)/(a+b)+4.0; 4. } For every instance 3 computer words required to store variables: a, b, and c. Therefore Sp()= 3. S(P) = 3.
  • 7. 7 Space Complexity: Example 2 1. Algorithm Sum(a[], n) 2. { 3. s:= 0.0; 4. for i = 1 to n do 5. s := s + a[i]; 6. return s; 7. }
  • 8. 8 Space Complexity: Example 2. • Every instance needs to store array a[] & n. – Space needed to store n = 1 word. – Space needed to store a[ ] = n floating point words (or at least n words) – Space needed to store i and s = 2 words • Sp(n) = (n + 3). Hence S(P) = (n + 3).
  • 9. 9 Time Complexity • Time required T(P) to run a program P also consists of two components: – A fixed part: compile time which is independent of the problem instance  c. – A variable part: run time which depends on the problem instance  tp(instance) • T(P) = c + tp(instance)
  • 10. 10 Time Complexity • How to measure T(P)? – Measure experimentally, using a “stop watch”  T(P) obtained in secs, msecs. – Count program steps  T(P) obtained as a step count. • Fixed part is usually ignored; only the variable part tp() is measured.
  • 11. 11 Time Complexity • What is a program step? – a+b+b*c+(a+b)/(a-b)  one step; – comments  zero steps; –while (<expr>) do  step count equal to the number of times <expr> is executed. –for i=<expr> to <expr1> do  step count equal to number of times <expr1> is checked.
  • 12. 12 Time Complexity: Example 1 Statements S/E Freq. Total 1 Algorithm Sum(a[],n) 0 - 0 2 { 0 - 0 3 S = 0.0; 1 1 1 4 for i=1 to n do 1 n+1 n+1 5 s = s+a[i]; 1 n n 6 return s; 1 1 1 7 } 0 - 0 2n+3
  • 13. 13 Time Complexity: Example 2 Statements S/E Freq. Total 1 Algorithm Sum(a[],n,m) 0 - 0 2 { 0 - 0 3 for i=1 to n do; 1 n+1 n+1 4 for j=1 to m do 1 n(m+1) n(m+1) 5 s = s+a[i][j]; 1 nm nm 6 return s; 1 1 1 2nm+2n+2
  • 14. 14 Performance Measurement • Which is better? – T(P1) = (n+1) or T(P2) = (n2 + 5). – T(P1) = log (n2 + 1)/n! or T(P2) = nn(nlogn)/n2. • Complex step count functions are difficult to compare. • For comparing, ‘rate of growth’ of time and space complexity functions is easy and sufficient.
  • 15. 15 Big O Notation • Big O of a function gives us ‘rate of growth’ of the step count function f(n), in terms of a simple function g(n), which is easy to compare. • Definition: [Big O] The function f(n) = O(g(n)) (big ‘oh’ of g of n) iff there exist positive constants c and n0 such that f(n) <= c*g(n) for all n, n>=n0. See graph on next slide. • Example: f(n) = 3n+2 is O(n) because 3n+2 <= 4n for all n >= 2. c = 4, n0 = 2. Here g(n) = n.
  • 17. 17 Big O Notation • Example: f(n) = 10n2+4n+2 is O(n2) because 10n2+4n+2 <= 11n2 for all n >=5. • Example: f(n) = 6*2n+n2 is O(2n) because 6*2n+n2 <=7*2n for all n>=4. • Algorithms can be: O(1)  constant; O(log n)  logrithmic; O(nlogn); O(n) linear; O(n2)  quadratic; O(n3)  cubic; O(2n)  exponential.
  • 18. 18 Big O Notation • Now it is easy to compare time or space complexities of algorithms. Which algorithm complexity is better? – T(P1) = O(n) or T(P2) = O(n2) – T(P1) = O(1) or T(P2) = O(log n) – T(P1) = O(2n) or T(P2) = O(n10)
  • 19. 19 Some Results Sum of two functions: If f(n) = f1(n) + f2(n), and f1(n) is O(g1(n)) and f2(n) is O(g2(n)), then f(n) = O(max(|g1(n)|, |g2(n)|)). Product of two functions: If f(n) = f1(n)* f2(n), and f1(n) is O(g1(n)) and f2(n) is O(g2(n)), then f(n) = O(g1(n)* g2(n)).