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
Asymptotic Notation
PDF
Java threads
DOC
Time and space complexity
PPTX
Single source Shortest path algorithm with example
PPTX
Sparse matrix and its representation data structure
PPTX
Python Programming Essentials - M31 - PEP 8
PPTX
Python comments and variables.pptx
Asymptotic Notation
Java threads
Time and space complexity
Single source Shortest path algorithm with example
Sparse matrix and its representation data structure
Python Programming Essentials - M31 - PEP 8
Python comments and variables.pptx

What's hot (20)

PPT
dynamic programming Rod cutting class
PPT
Divide and Conquer
PPT
BINARY TREE REPRESENTATION.ppt
PPTX
recurrence relations
PPT
Compiler Construction introduction
PPTX
10. Search Tree - Data Structures using C++ by Varsha Patil
PDF
Formal Languages and Automata Theory unit 3
PPTX
Call by value
PDF
Time and Space Complexity
PDF
Algorithms Lecture 7: Graph Algorithms
PDF
Dynamic Semantics
PPTX
Conditional statement in c
PPT
Unit 1 python (2021 r)
PPTX
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
PPT
Two Dimensional Array
PPTX
N queens using backtracking
PPTX
Introduction to problem solving in C
PPTX
Strings in Python
PDF
Little o and little omega
PPT
POST’s CORRESPONDENCE PROBLEM
dynamic programming Rod cutting class
Divide and Conquer
BINARY TREE REPRESENTATION.ppt
recurrence relations
Compiler Construction introduction
10. Search Tree - Data Structures using C++ by Varsha Patil
Formal Languages and Automata Theory unit 3
Call by value
Time and Space Complexity
Algorithms Lecture 7: Graph Algorithms
Dynamic Semantics
Conditional statement in c
Unit 1 python (2021 r)
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Two Dimensional Array
N queens using backtracking
Introduction to problem solving in C
Strings in Python
Little o and little omega
POST’s CORRESPONDENCE PROBLEM
Ad

Similar to ALGORITHM-ANALYSIS.ppt (20)

PPTX
BCSE202Lkkljkljkbbbnbnghghjghghghghghghghgh
PPTX
02 Introduction to Data Structures & Algorithms.pptx
PDF
DSA
PPTX
Searching Algorithms
PDF
Chapter One.pdf
PDF
Data Structures Notes
PPTX
daa18d8d-d333-4398-94dd-a46802d88d79.pptx
PPTX
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
PPTX
Unit i basic concepts of algorithms
PPT
Basics of data structure types of data structures
PDF
Algorithm analysis
PPTX
Design and Analysis of Algorithms.pptx
PPTX
Algorithm Complexity and Main Concepts
PPT
Data Structure and Algorithm chapter two, This material is for Data Structure...
PPTX
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
PDF
Data Structure & Algorithms - Introduction
PPTX
DAA-Unit1.pptx
PDF
DATA STRUCTURE
PDF
DATA STRUCTURE.pdf
PPTX
Algorithm and C code related to data structure
BCSE202Lkkljkljkbbbnbnghghjghghghghghghghgh
02 Introduction to Data Structures & Algorithms.pptx
DSA
Searching Algorithms
Chapter One.pdf
Data Structures Notes
daa18d8d-d333-4398-94dd-a46802d88d79.pptx
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
Unit i basic concepts of algorithms
Basics of data structure types of data structures
Algorithm analysis
Design and Analysis of Algorithms.pptx
Algorithm Complexity and Main Concepts
Data Structure and Algorithm chapter two, This material is for Data Structure...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
Data Structure & Algorithms - Introduction
DAA-Unit1.pptx
DATA STRUCTURE
DATA STRUCTURE.pdf
Algorithm and C code related to data structure
Ad

Recently uploaded (20)

PDF
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
PPTX
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
PDF
Foundation of Data Science unit number two notes
PDF
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
PDF
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPT
ISS -ESG Data flows What is ESG and HowHow
PDF
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
PDF
Fluorescence-microscope_Botany_detailed content
PPT
Quality review (1)_presentation of this 21
PDF
Clinical guidelines as a resource for EBP(1).pdf
PPTX
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
PDF
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
PPTX
Acceptance and paychological effects of mandatory extra coach I classes.pptx
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PPTX
1_Introduction to advance data techniques.pptx
PDF
Mega Projects Data Mega Projects Data
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
Foundation of Data Science unit number two notes
Recruitment and Placement PPT.pdfbjfibjdfbjfobj
“Getting Started with Data Analytics Using R – Concepts, Tools & Case Studies”
Miokarditis (Inflamasi pada Otot Jantung)
ISS -ESG Data flows What is ESG and HowHow
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
Fluorescence-microscope_Botany_detailed content
Quality review (1)_presentation of this 21
Clinical guidelines as a resource for EBP(1).pdf
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
Acceptance and paychological effects of mandatory extra coach I classes.pptx
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
1_Introduction to advance data techniques.pptx
Mega Projects Data Mega Projects Data

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)).