SlideShare a Scribd company logo
Analysis of Algorithms
CS 477/677
Asymptotic Analysis
Instructor: George Bebis
(Chapter 3, Appendix A)
2
Analysis of Algorithms
• An algorithm is a finite set of precise instructions
for performing a computation or for solving a
problem.
• What is the goal of analysis of algorithms?
– To compare algorithms mainly in terms of running
time but also in terms of other factors (e.g., memory
requirements, programmer's effort etc.)
• What do we mean by running time analysis?
– Determine how running time increases as the size
of the problem increases.
3
Input Size
• Input size (number of elements in the input)
– size of an array
– polynomial degree
– # of elements in a matrix
– # of bits in the binary representation of the input
– vertices and edges in a graph
4
Types of Analysis
• Worst case
– Provides an upper bound on running time
– An absolute guarantee that the algorithm would not run longer,
no matter what the inputs are
• Best case
– Provides a lower bound on running time
– Input is the one for which the algorithm runs the fastest
• Average case
– Provides a prediction about the running time
– Assumes that the input is random
Lower Bound RunningTime Upper Bound≤ ≤
5
How do we compare algorithms?
• We need to define a number of objective
measures.
(1) Compare execution times?
Not good: times are specific to a particular
computer !!
(2) Count the number of statements executed?
Not good: number of statements vary with
the programming language as well as the
style of the individual programmer.
6
Ideal Solution
• Express running time as a function of the
input size n (i.e., f(n)).
• Compare different functions
corresponding to running times.
• Such an analysis is independent of
machine time, programming style, etc.
7
Example
• Associate a "cost" with each statement.
• Find the "total cost“ by finding the total number of times
each statement is executed.
Algorithm 1 Algorithm 2
Cost Cost
arr[0] = 0; c1 for(i=0; i<N; i++) c2
arr[1] = 0; c1 arr[i] = 0; c1
arr[2] = 0; c1
... ...
arr[N-1] = 0; c1
----------- -------------
c1+c1+...+c1 = c1 x N (N+1) x c2 + N x c1 =
(c2 + c1) x N + c2
8
Another Example
• Algorithm 3 Cost
sum = 0; c1
for(i=0; i<N; i++) c2
for(j=0; j<N; j++) c2
sum += arr[i][j]; c3
------------
c1 + c2 x (N+1) + c2 x N x (N+1) + c3 x N2
9
Asymptotic Analysis
• To compare two algorithms with running
times f(n) and g(n), we need a rough
measure that characterizes how fast
each function grows.
• Hint: use rate of growth
• Compare functions in the limit, that is,
asymptotically!
(i.e., for large values of n)
10
Rate of Growth
• Consider the example of buying elephants and
goldfish:
Cost: cost_of_elephants + cost_of_goldfish
Cost ~ cost_of_elephants (approximation)
• The low order terms in a function are relatively
insignificant for large n
n4
+ 100n2
+ 10n + 50 ~ n4
i.e., we say that n4
+ 100n2
+ 10n + 50 and n4
have
the same rate of growth
11
Asymptotic Notation
• O notation: asymptotic “less than”:
– f(n)=O(g(n)) implies: f(n) “≤” g(n)
∀ Ω notation: asymptotic “greater than”:
– f(n)= Ω (g(n)) implies: f(n) “≥” g(n)
∀ Θ notation: asymptotic “equality”:
– f(n)= Θ (g(n)) implies: f(n) “=” g(n)
12
Big-O Notation
• We say fA(n)=30n+8 is order n, or O (n)
It is, at most, roughly proportional to n.
• fB(n)=n2
+1 is order n2
, or O(n2
). It is, at most,
roughly proportional to n2
.
• In general, any O(n2
) function is faster-
growing than any O(n) function.
13
Visualizing Orders of Growth
• On a graph, as
you go to the
right, a faster
growing
function
eventually
becomes
larger...
fA(n)=30n+8
Increasing n →
fB(n)=n2
+1
Valueoffunction→
14
More Examples …
• n4
+ 100n2
+ 10n + 50 is O(n4
)
• 10n3
+ 2n2
is O(n3
)
• n3
- n2
is O(n3
)
• constants
– 10 is O(1)
– 1273 is O(1)
15
Back to Our Example
Algorithm 1 Algorithm 2
Cost Cost
arr[0] = 0; c1 for(i=0; i<N; i++) c2
arr[1] = 0; c1 arr[i] = 0; c1
arr[2] = 0; c1
...
arr[N-1] = 0; c1
----------- -------------
c1+c1+...+c1 = c1 x N (N+1) x c2 + N x c1 =
(c2 + c1) x N + c2
• Both algorithms are of the same order: O(N)
16
Example (cont’d)
Algorithm 3 Cost
sum = 0; c1
for(i=0; i<N; i++) c2
for(j=0; j<N; j++) c2
sum += arr[i][j]; c3
------------
c1 + c2 x (N+1) + c2 x N x (N+1) + c3 x N2
= O(N2
)
17
Asymptotic notations
• O-notation
18
Big-O Visualization
O(g(n)) is the set of
functions with smaller
or same order of
growth as g(n)
19
Examples
– 2n2
= O(n3
):
– n2
= O(n2
):
– 1000n2
+1000n = O(n2
):
– n = O(n2
):
2n2
≤ cn3
⇒ 2 ≤ cn ⇒ c = 1 and n0= 2
n2
≤ cn2
⇒ c ≥ 1 ⇒ c = 1 and n0= 1
1000n2
+1000n ≤ 1000n2
+ n2
=1001n2
⇒ c=1001 and n0 = 1000
n ≤ cn2
⇒ cn ≥ 1 ⇒ c = 1 and n0= 1
20
More Examples
• Show that 30n+8 is O(n).
– Show ∃c,n0: 30n+8 ≤ cn, ∀n>n0 .
• Let c=31, n0=8. Assume n>n0=8. Then
cn = 31n = 30n + n > 30n+8, so 30n+8 < cn.
21
• Note 30n+8 isn’t
less than n
anywhere (n>0).
• It isn’t even
less than 31n
everywhere.
• But it is less than
31n everywhere to
the right of n=8.
n>n0=8 →
Big-O example, graphically
Increasing n →
Valueoffunction→
n
30n+8
cn =
31n
30n+8
∈O(n)
22
No Uniqueness
• There is no unique set of values for n0 and c in proving the
asymptotic bounds
• Prove that 100n + 5 = O(n2
)
– 100n + 5 ≤ 100n + n = 101n ≤ 101n2
for all n ≥ 5
n0 = 5 and c = 101 is a solution
– 100n + 5 ≤ 100n + 5n = 105n ≤ 105n2
for all n ≥ 1
n0 = 1 and c = 105 is also a solution
Must find SOME constants c and n0 that satisfy the asymptotic notation relation
23
Asymptotic notations (cont.)
∀ Ω - notation
Ω(g(n)) is the set of functions
with larger or same order of
growth as g(n)
24
Examples
– 5n2
= Ω(n)
– 100n + 5 ≠ Ω(n2
)
– n = Ω(2n), n3
= Ω(n2
), n = Ω(logn)
∃ c, n0 such that: 0 ≤ cn ≤ 5n2 ⇒ cn ≤ 5n2
⇒ c = 1 and n0 = 1
∃ c, n0 such that: 0 ≤ cn2
≤ 100n + 5
100n + 5 ≤ 100n + 5n (∀ n ≥ 1) = 105n
cn2
≤ 105n ⇒ n(cn – 105) ≤ 0
Since n is positive ⇒ cn – 105 ≤ 0 ⇒ n ≤ 105/c
⇒ contradiction: n cannot be smaller than a constant
25
Asymptotic notations (cont.)
∀ Θ-notation
Θ(g(n)) is the set of functions
with the same order of growth
as g(n)
26
Examples
– n2
/2 –n/2 = Θ(n2
)
• ½ n2
- ½ n ≤ ½ n2
∀n ≥ 0 ⇒ c2= ½
• ½ n2
- ½ n ≥ ½ n2
- ½ n * ½ n ( ∀n ≥ 2 ) = ¼ n2
⇒ c1= ¼
– n ≠ Θ(n2
): c1 n2
≤ n ≤ c2 n2
⇒ only holds for: n ≤ 1/c1
27
Examples
– 6n3
≠ Θ(n2
): c1 n2
≤ 6n3
≤ c2 n2
⇒ only holds for: n ≤ c2 /6
– n ≠ Θ(logn): c1 logn ≤ n ≤ c2 logn
⇒ c2 ≥ n/logn, ∀ n≥ n0 – impossible
28
• Subset relations between order-of-growth sets.
Relations Between Different Sets
R→R
Ω( f )O( f )
Θ( f )
• f
29
Common orders of magnitude
30
Common orders of magnitude
31
Logarithms and properties
• In algorithm analysis we often use the notation “log n”
without specifying the base
nn
nn
elogln
loglg 2
=
= =y
xlogBinary logarithm
Natural logarithm
)lg(lglglg
)(lglg
nn
nn kk
=
=
xy log
=xylog yx loglog +
=
y
x
log yx loglog −
logb x =
ab
xlog
=xb
alog
log
log
a
a
x
b
32
More Examples
• For each of the following pairs of functions, either f(n) is
O(g(n)), f(n) is Ω(g(n)), or f(n) = Θ(g(n)). Determine
which relationship is correct.
– f(n) = log n2
; g(n) = log n + 5
– f(n) = n; g(n) = log n2
– f(n) = log log n; g(n) = log n
– f(n) = n; g(n) = log2
n
– f(n) = n log n + n; g(n) = log n
– f(n) = 10; g(n) = log 10
– f(n) = 2n
; g(n) = 10n2
– f(n) = 2n
; g(n) = 3n
f(n) = Θ (g(n))
f(n) = Ω(g(n))
f(n) = O(g(n))
f(n) = Ω(g(n))
f(n) = Ω(g(n))
f(n) = Θ(g(n))
f(n) = Ω(g(n))
f(n) = O(g(n))
33
Properties
• Theorem:
f(n) = Θ(g(n)) ⇔ f = O(g(n)) and f = Ω(g(n))
• Transitivity:
– f(n) = Θ(g(n)) and g(n) = Θ(h(n)) ⇒ f(n) = Θ(h(n))
– Same for O and Ω
• Reflexivity:
– f(n) = Θ(f(n))
– Same for O and Ω
• Symmetry:
– f(n) = Θ(g(n)) if and only if g(n) = Θ(f(n))
• Transpose symmetry:
– f(n) = O(g(n)) if and only if g(n) = Ω(f(n))
34
Asymptotic Notations in Equations
• On the right-hand side
Θ(n2
) stands for some anonymous function in Θ(n2
)
2n2
+ 3n + 1 = 2n2
+ Θ(n) means:
There exists a function f(n) ∈ Θ(n) such that
2n2
+ 3n + 1 = 2n2
+ f(n)
• On the left-hand side
2n2
+ Θ(n) = Θ(n2
)
No matter how the anonymous function is chosen on
the left-hand side, there is a way to choose the
anonymous function on the right-hand side to make
the equation valid.
35
Common Summations
• Arithmetic series:
• Geometric series:
– Special case: |x| < 1:
• Harmonic series:
• Other important formulas:
2
)1( +nn
∑=
=+++=
n
k
nk
1
...21
( )1
1
11
≠
−
−+
x
x
xn
=++++=∑=
n
n
k
k
xxxx ...1 2
0
x−1
1
=∑
∞
=0k
k
x
nln≈∑=
+++=
n
k nk1
1
...
2
1
1
1
∑=
n
k
k
1
lg nnlg≈
1
1
1 +
+
p
n
p∑=
≈+++=
n
k
pppp
nk
1
...21
36
Mathematical Induction
• A powerful, rigorous technique for proving that a
statement S(n) is true for every natural number n,
no matter how large.
• Proof:
– Basis step: prove that the statement is true for n = 1
– Inductive step: assume that S(n) is true and prove that
S(n+1) is true for all n ≥ 1
• Find case n “within” case n+1
37
Example
• Prove that: 2n + 1 ≤ 2n
for all n ≥ 3
• Basis step:
– n = 3: 2 ∗ 3 + 1 ≤ 23
⇔ 7 ≤ 8 TRUE
• Inductive step:
– Assume inequality is true for n, and prove it for (n+1):
2n + 1 ≤ 2n
must prove: 2(n + 1) + 1 ≤ 2n+1
2(n + 1) + 1 = (2n + 1 ) + 2 ≤ 2n
+ 2 ≤
≤ 2n
+ 2n
= 2n+1
, since 2 ≤ 2n
for n ≥ 1

More Related Content

PPT
Asymptotic Notation and Complexity
PPT
Asymptotic notations
PPT
how to calclute time complexity of algortihm
PPTX
Algorithm Complexity and Main Concepts
PPT
Asymptotic notation
PPTX
Complexity analysis in Algorithms
DOC
Time and space complexity
PPTX
Analysis of algorithm
Asymptotic Notation and Complexity
Asymptotic notations
how to calclute time complexity of algortihm
Algorithm Complexity and Main Concepts
Asymptotic notation
Complexity analysis in Algorithms
Time and space complexity
Analysis of algorithm

What's hot (20)

PPTX
Asymptotic Notations
PDF
Algorithms Lecture 2: Analysis of Algorithms I
PDF
Time and Space Complexity
PPT
Time complexity
PPT
Time complexity.ppt
PPTX
Asymptotic notations
PPT
Master method theorem
PPTX
Asymptotic Notation
PPT
Complexity of Algorithm
PDF
Asymptotic Notation
PPTX
Insertion sort
PDF
Daa notes 1
PDF
Little o and little omega
PPTX
asymptotic notation
PPTX
Job sequencing with deadline
PPT
First order logic
PPTX
Knapsack Problem
PDF
Asymptotic notation
PPTX
Greedy algorithms
Asymptotic Notations
Algorithms Lecture 2: Analysis of Algorithms I
Time and Space Complexity
Time complexity
Time complexity.ppt
Asymptotic notations
Master method theorem
Asymptotic Notation
Complexity of Algorithm
Asymptotic Notation
Insertion sort
Daa notes 1
Little o and little omega
asymptotic notation
Job sequencing with deadline
First order logic
Knapsack Problem
Asymptotic notation
Greedy algorithms
Ad

Viewers also liked (7)

PPTX
asymptotic analysis and insertion sort analysis
PDF
Data Structure: Algorithm and analysis
PPT
Asymptotic notation
PDF
Lecture 4 asymptotic notations
PDF
Asymptotic Growth of Functions
PPTX
Asymptotic Notation and Data Structures
asymptotic analysis and insertion sort analysis
Data Structure: Algorithm and analysis
Asymptotic notation
Lecture 4 asymptotic notations
Asymptotic Growth of Functions
Asymptotic Notation and Data Structures
Ad

Similar to Asymptotic analysis (20)

PPT
AsymptoticAnalysis-goal of analysis of algorithms
PPT
AsymptoticAnalysis.ppt
PDF
6_12_13Asymptotic analysiskfnhlkjsbfbkjs.pdf
PPTX
Dr hasany 2467_16649_1_lec-2-zabist
PPTX
1_Asymptotic_Notation_pptx.pptx
PPTX
CS 161 Section 1 Slides - Stanford University
PDF
Data Structures and Algorithms - Lec 02.pdf
PPTX
cse couse aefrfrqewrbqwrgbqgvq2w3vqbvq23rbgw3rnw345
PDF
Time complexity (linear search vs binary search)
PPT
Lecture 4 - Growth of Functions (1).ppt
PPT
Lecture 4 - Growth of Functions.ppt
PDF
Unit 1_final DESIGN AND ANALYSIS OF ALGORITHM.pdf
PPTX
1.algorithms
PPTX
Asymptotic Notations
PPT
Design and analysis of algorithm ppt ppt
PPTX
Lecture 2 data structures and algorithms
PDF
Lecture 3(a) Asymptotic-analysis.pdf
PPTX
Introduction to Algorithms and Asymptotic Notation
PDF
asymptoticnotations-111102093214-phpapp01 (1).pdf
PPTX
Algorithms required for data structures(basics like Arrays, Stacks ,Linked Li...
AsymptoticAnalysis-goal of analysis of algorithms
AsymptoticAnalysis.ppt
6_12_13Asymptotic analysiskfnhlkjsbfbkjs.pdf
Dr hasany 2467_16649_1_lec-2-zabist
1_Asymptotic_Notation_pptx.pptx
CS 161 Section 1 Slides - Stanford University
Data Structures and Algorithms - Lec 02.pdf
cse couse aefrfrqewrbqwrgbqgvq2w3vqbvq23rbgw3rnw345
Time complexity (linear search vs binary search)
Lecture 4 - Growth of Functions (1).ppt
Lecture 4 - Growth of Functions.ppt
Unit 1_final DESIGN AND ANALYSIS OF ALGORITHM.pdf
1.algorithms
Asymptotic Notations
Design and analysis of algorithm ppt ppt
Lecture 2 data structures and algorithms
Lecture 3(a) Asymptotic-analysis.pdf
Introduction to Algorithms and Asymptotic Notation
asymptoticnotations-111102093214-phpapp01 (1).pdf
Algorithms required for data structures(basics like Arrays, Stacks ,Linked Li...

More from Soujanya V (7)

PPT
Decision tree
PPTX
Implementing java server pages standard tag library v2
PPTX
Filter
PPT
Load balancing
PPTX
Bigdataissueschallengestoolsngoodpractices 141130054740-conversion-gate01
PPTX
Implementing jsp tag extensions
PPTX
Filter
Decision tree
Implementing java server pages standard tag library v2
Filter
Load balancing
Bigdataissueschallengestoolsngoodpractices 141130054740-conversion-gate01
Implementing jsp tag extensions
Filter

Recently uploaded (20)

PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Lecture Notes Electrical Wiring System Components
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
Construction Project Organization Group 2.pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
Sustainable Sites - Green Building Construction
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
DOCX
573137875-Attendance-Management-System-original
PDF
Well-logging-methods_new................
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
CYBER-CRIMES AND SECURITY A guide to understanding
Lecture Notes Electrical Wiring System Components
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Construction Project Organization Group 2.pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Sustainable Sites - Green Building Construction
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
573137875-Attendance-Management-System-original
Well-logging-methods_new................
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Embodied AI: Ushering in the Next Era of Intelligent Systems
CH1 Production IntroductoryConcepts.pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx

Asymptotic analysis

  • 1. Analysis of Algorithms CS 477/677 Asymptotic Analysis Instructor: George Bebis (Chapter 3, Appendix A)
  • 2. 2 Analysis of Algorithms • An algorithm is a finite set of precise instructions for performing a computation or for solving a problem. • What is the goal of analysis of algorithms? – To compare algorithms mainly in terms of running time but also in terms of other factors (e.g., memory requirements, programmer's effort etc.) • What do we mean by running time analysis? – Determine how running time increases as the size of the problem increases.
  • 3. 3 Input Size • Input size (number of elements in the input) – size of an array – polynomial degree – # of elements in a matrix – # of bits in the binary representation of the input – vertices and edges in a graph
  • 4. 4 Types of Analysis • Worst case – Provides an upper bound on running time – An absolute guarantee that the algorithm would not run longer, no matter what the inputs are • Best case – Provides a lower bound on running time – Input is the one for which the algorithm runs the fastest • Average case – Provides a prediction about the running time – Assumes that the input is random Lower Bound RunningTime Upper Bound≤ ≤
  • 5. 5 How do we compare algorithms? • We need to define a number of objective measures. (1) Compare execution times? Not good: times are specific to a particular computer !! (2) Count the number of statements executed? Not good: number of statements vary with the programming language as well as the style of the individual programmer.
  • 6. 6 Ideal Solution • Express running time as a function of the input size n (i.e., f(n)). • Compare different functions corresponding to running times. • Such an analysis is independent of machine time, programming style, etc.
  • 7. 7 Example • Associate a "cost" with each statement. • Find the "total cost“ by finding the total number of times each statement is executed. Algorithm 1 Algorithm 2 Cost Cost arr[0] = 0; c1 for(i=0; i<N; i++) c2 arr[1] = 0; c1 arr[i] = 0; c1 arr[2] = 0; c1 ... ... arr[N-1] = 0; c1 ----------- ------------- c1+c1+...+c1 = c1 x N (N+1) x c2 + N x c1 = (c2 + c1) x N + c2
  • 8. 8 Another Example • Algorithm 3 Cost sum = 0; c1 for(i=0; i<N; i++) c2 for(j=0; j<N; j++) c2 sum += arr[i][j]; c3 ------------ c1 + c2 x (N+1) + c2 x N x (N+1) + c3 x N2
  • 9. 9 Asymptotic Analysis • To compare two algorithms with running times f(n) and g(n), we need a rough measure that characterizes how fast each function grows. • Hint: use rate of growth • Compare functions in the limit, that is, asymptotically! (i.e., for large values of n)
  • 10. 10 Rate of Growth • Consider the example of buying elephants and goldfish: Cost: cost_of_elephants + cost_of_goldfish Cost ~ cost_of_elephants (approximation) • The low order terms in a function are relatively insignificant for large n n4 + 100n2 + 10n + 50 ~ n4 i.e., we say that n4 + 100n2 + 10n + 50 and n4 have the same rate of growth
  • 11. 11 Asymptotic Notation • O notation: asymptotic “less than”: – f(n)=O(g(n)) implies: f(n) “≤” g(n) ∀ Ω notation: asymptotic “greater than”: – f(n)= Ω (g(n)) implies: f(n) “≥” g(n) ∀ Θ notation: asymptotic “equality”: – f(n)= Θ (g(n)) implies: f(n) “=” g(n)
  • 12. 12 Big-O Notation • We say fA(n)=30n+8 is order n, or O (n) It is, at most, roughly proportional to n. • fB(n)=n2 +1 is order n2 , or O(n2 ). It is, at most, roughly proportional to n2 . • In general, any O(n2 ) function is faster- growing than any O(n) function.
  • 13. 13 Visualizing Orders of Growth • On a graph, as you go to the right, a faster growing function eventually becomes larger... fA(n)=30n+8 Increasing n → fB(n)=n2 +1 Valueoffunction→
  • 14. 14 More Examples … • n4 + 100n2 + 10n + 50 is O(n4 ) • 10n3 + 2n2 is O(n3 ) • n3 - n2 is O(n3 ) • constants – 10 is O(1) – 1273 is O(1)
  • 15. 15 Back to Our Example Algorithm 1 Algorithm 2 Cost Cost arr[0] = 0; c1 for(i=0; i<N; i++) c2 arr[1] = 0; c1 arr[i] = 0; c1 arr[2] = 0; c1 ... arr[N-1] = 0; c1 ----------- ------------- c1+c1+...+c1 = c1 x N (N+1) x c2 + N x c1 = (c2 + c1) x N + c2 • Both algorithms are of the same order: O(N)
  • 16. 16 Example (cont’d) Algorithm 3 Cost sum = 0; c1 for(i=0; i<N; i++) c2 for(j=0; j<N; j++) c2 sum += arr[i][j]; c3 ------------ c1 + c2 x (N+1) + c2 x N x (N+1) + c3 x N2 = O(N2 )
  • 18. 18 Big-O Visualization O(g(n)) is the set of functions with smaller or same order of growth as g(n)
  • 19. 19 Examples – 2n2 = O(n3 ): – n2 = O(n2 ): – 1000n2 +1000n = O(n2 ): – n = O(n2 ): 2n2 ≤ cn3 ⇒ 2 ≤ cn ⇒ c = 1 and n0= 2 n2 ≤ cn2 ⇒ c ≥ 1 ⇒ c = 1 and n0= 1 1000n2 +1000n ≤ 1000n2 + n2 =1001n2 ⇒ c=1001 and n0 = 1000 n ≤ cn2 ⇒ cn ≥ 1 ⇒ c = 1 and n0= 1
  • 20. 20 More Examples • Show that 30n+8 is O(n). – Show ∃c,n0: 30n+8 ≤ cn, ∀n>n0 . • Let c=31, n0=8. Assume n>n0=8. Then cn = 31n = 30n + n > 30n+8, so 30n+8 < cn.
  • 21. 21 • Note 30n+8 isn’t less than n anywhere (n>0). • It isn’t even less than 31n everywhere. • But it is less than 31n everywhere to the right of n=8. n>n0=8 → Big-O example, graphically Increasing n → Valueoffunction→ n 30n+8 cn = 31n 30n+8 ∈O(n)
  • 22. 22 No Uniqueness • There is no unique set of values for n0 and c in proving the asymptotic bounds • Prove that 100n + 5 = O(n2 ) – 100n + 5 ≤ 100n + n = 101n ≤ 101n2 for all n ≥ 5 n0 = 5 and c = 101 is a solution – 100n + 5 ≤ 100n + 5n = 105n ≤ 105n2 for all n ≥ 1 n0 = 1 and c = 105 is also a solution Must find SOME constants c and n0 that satisfy the asymptotic notation relation
  • 23. 23 Asymptotic notations (cont.) ∀ Ω - notation Ω(g(n)) is the set of functions with larger or same order of growth as g(n)
  • 24. 24 Examples – 5n2 = Ω(n) – 100n + 5 ≠ Ω(n2 ) – n = Ω(2n), n3 = Ω(n2 ), n = Ω(logn) ∃ c, n0 such that: 0 ≤ cn ≤ 5n2 ⇒ cn ≤ 5n2 ⇒ c = 1 and n0 = 1 ∃ c, n0 such that: 0 ≤ cn2 ≤ 100n + 5 100n + 5 ≤ 100n + 5n (∀ n ≥ 1) = 105n cn2 ≤ 105n ⇒ n(cn – 105) ≤ 0 Since n is positive ⇒ cn – 105 ≤ 0 ⇒ n ≤ 105/c ⇒ contradiction: n cannot be smaller than a constant
  • 25. 25 Asymptotic notations (cont.) ∀ Θ-notation Θ(g(n)) is the set of functions with the same order of growth as g(n)
  • 26. 26 Examples – n2 /2 –n/2 = Θ(n2 ) • ½ n2 - ½ n ≤ ½ n2 ∀n ≥ 0 ⇒ c2= ½ • ½ n2 - ½ n ≥ ½ n2 - ½ n * ½ n ( ∀n ≥ 2 ) = ¼ n2 ⇒ c1= ¼ – n ≠ Θ(n2 ): c1 n2 ≤ n ≤ c2 n2 ⇒ only holds for: n ≤ 1/c1
  • 27. 27 Examples – 6n3 ≠ Θ(n2 ): c1 n2 ≤ 6n3 ≤ c2 n2 ⇒ only holds for: n ≤ c2 /6 – n ≠ Θ(logn): c1 logn ≤ n ≤ c2 logn ⇒ c2 ≥ n/logn, ∀ n≥ n0 – impossible
  • 28. 28 • Subset relations between order-of-growth sets. Relations Between Different Sets R→R Ω( f )O( f ) Θ( f ) • f
  • 29. 29 Common orders of magnitude
  • 30. 30 Common orders of magnitude
  • 31. 31 Logarithms and properties • In algorithm analysis we often use the notation “log n” without specifying the base nn nn elogln loglg 2 = = =y xlogBinary logarithm Natural logarithm )lg(lglglg )(lglg nn nn kk = = xy log =xylog yx loglog + = y x log yx loglog − logb x = ab xlog =xb alog log log a a x b
  • 32. 32 More Examples • For each of the following pairs of functions, either f(n) is O(g(n)), f(n) is Ω(g(n)), or f(n) = Θ(g(n)). Determine which relationship is correct. – f(n) = log n2 ; g(n) = log n + 5 – f(n) = n; g(n) = log n2 – f(n) = log log n; g(n) = log n – f(n) = n; g(n) = log2 n – f(n) = n log n + n; g(n) = log n – f(n) = 10; g(n) = log 10 – f(n) = 2n ; g(n) = 10n2 – f(n) = 2n ; g(n) = 3n f(n) = Θ (g(n)) f(n) = Ω(g(n)) f(n) = O(g(n)) f(n) = Ω(g(n)) f(n) = Ω(g(n)) f(n) = Θ(g(n)) f(n) = Ω(g(n)) f(n) = O(g(n))
  • 33. 33 Properties • Theorem: f(n) = Θ(g(n)) ⇔ f = O(g(n)) and f = Ω(g(n)) • Transitivity: – f(n) = Θ(g(n)) and g(n) = Θ(h(n)) ⇒ f(n) = Θ(h(n)) – Same for O and Ω • Reflexivity: – f(n) = Θ(f(n)) – Same for O and Ω • Symmetry: – f(n) = Θ(g(n)) if and only if g(n) = Θ(f(n)) • Transpose symmetry: – f(n) = O(g(n)) if and only if g(n) = Ω(f(n))
  • 34. 34 Asymptotic Notations in Equations • On the right-hand side Θ(n2 ) stands for some anonymous function in Θ(n2 ) 2n2 + 3n + 1 = 2n2 + Θ(n) means: There exists a function f(n) ∈ Θ(n) such that 2n2 + 3n + 1 = 2n2 + f(n) • On the left-hand side 2n2 + Θ(n) = Θ(n2 ) No matter how the anonymous function is chosen on the left-hand side, there is a way to choose the anonymous function on the right-hand side to make the equation valid.
  • 35. 35 Common Summations • Arithmetic series: • Geometric series: – Special case: |x| < 1: • Harmonic series: • Other important formulas: 2 )1( +nn ∑= =+++= n k nk 1 ...21 ( )1 1 11 ≠ − −+ x x xn =++++=∑= n n k k xxxx ...1 2 0 x−1 1 =∑ ∞ =0k k x nln≈∑= +++= n k nk1 1 ... 2 1 1 1 ∑= n k k 1 lg nnlg≈ 1 1 1 + + p n p∑= ≈+++= n k pppp nk 1 ...21
  • 36. 36 Mathematical Induction • A powerful, rigorous technique for proving that a statement S(n) is true for every natural number n, no matter how large. • Proof: – Basis step: prove that the statement is true for n = 1 – Inductive step: assume that S(n) is true and prove that S(n+1) is true for all n ≥ 1 • Find case n “within” case n+1
  • 37. 37 Example • Prove that: 2n + 1 ≤ 2n for all n ≥ 3 • Basis step: – n = 3: 2 ∗ 3 + 1 ≤ 23 ⇔ 7 ≤ 8 TRUE • Inductive step: – Assume inequality is true for n, and prove it for (n+1): 2n + 1 ≤ 2n must prove: 2(n + 1) + 1 ≤ 2n+1 2(n + 1) + 1 = (2n + 1 ) + 2 ≤ 2n + 2 ≤ ≤ 2n + 2n = 2n+1 , since 2 ≤ 2n for n ≥ 1