Download presentation
Presentation is loading. Please wait.
1
O-notation (upper bound)
Asymptotic running times of algorithms are usually defined by functions whose domain are N={0, 1, 2, …} (natural numbers) Formal Definition of O-notation f(n) = O(g(n)) if positive constants c, n0 such that 0 ≤ f(n) ≤ cg(n), n ≥ n0 Ex. 2n2 = O(n3) 2n2 ≤ cn3 cn ≥ 2 c = 1 & n0 = 2 or c = 2 & n0 = 1 2n3 = O(n3) 2n3 ≤ cn3 c ≥ 2 c = 2 & n0 = 1 BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
2
O-notation (upper bound)
“=” is funny; “one-way” equality O-notation is sloppy, but convenient. We must understand what O(n) really means O(g(n)) is actually a set of functions. O(g(n)) = { f(n) : positive constants c, n0 such that 0 ≤ f(n) ≤ cg(n), n ≥ n0 } 2n2 = O(n3) means that 2n2 O(n3) BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
3
O-notation (upper bound)
O-notation is an upper-bound notation It makes no sense to say “running time of an algorithm is at least O(n2)”. let running time be T(n) T(n) ≥ O(n2) means T(n) ≥ h(n) for some h(n) O(n2) however, this is true for any T(n) since h(n) = 0 O(n2), & running time > 0, so stmt tells nothing about running time BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
4
O-notation (upper bound)
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
5
-notation (lower bound)
Formal Definition of -notation f(n) = (g(n)) if positive constants c, n0 such that 0 ≤ cg(n) ≤ f(n) , n ≥ n0 (g(n)) { f(n) : positive constants c, n0 such that 0 ≤ cg(n) ≤ f(n) , n ≥ n0 } BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
6
-notation (lower bound)
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
7
Θ-notation (tight bound)
Formal Definition of Θ-notation f(n) = Θ(g(n)) if positive constants c1, c2, n0 such that 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n) , n ≥ n0 Θ(g(n)) { f(n) : positive constants c1, c2, n0 such that 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n) , n ≥ n0 } BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
8
Θ-notation (tight bound) - Example
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
9
Θ-notation (tight bound) - 0 < c1 ≤ h(n) ≤ c2
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
10
Θ-notation (tight bound) - 0 < c1 ≤ h(n) ≤ c2
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
11
Θ-notation (tight bound)
Θ(g(n)) { f(n) : positive constants c1, c2, n0 such that 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n) , n ≥ n0 } BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
12
Θ-notation BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
13
Θ-notation BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
14
Using O-notation for Describing Running Times
O-notation is used to bound worst-case running times bounds running time on arbitrary inputs as well O(n2) bound on worst-case running time of insertion sort also applies to its running time on every input What we really mean by “running time of insertion sort is O(n2)” worst-case running time of insertion sort is O(n2) or equivalently no matter what particular input of size n is chosen (for each value of) running time on that set of inputs is O(n2) BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
15
Using Ω-notation for Describing Running Times
Ω(n) is used to bound the best-case running times bounds the running time on arbitrary inputs as well e.g., Ω(n) bound on best-case running time of insertion sort running time of insertion sort is Ω(n) “running time of an algorithm is Ω(g(n))” means no matter what particular input of size n is chosen (for any n), running time on that set of inputs is at least a constant times g(n), for sufficiently large n however, it is not contradictory to say “worst-case running time of insertion sort is Ω(n2)” since there exists an input that causes algorithm to take Ω(n2) time BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
16
Using Θ-notation for Describing Running Times
Case 1. used to bound worst-case & best-case running times of an algorithm if they are not asymptotically equal Case 2. used to bound running time of an algorithm if its worst & best case running times are asymptotically equal BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
17
Using Θ-notation for Describing Running Times
Case (1) a Θ-bound on worst-/best-case running time does not apply to its running time on arbitrary inputs e.g., Θ(n2) bound on worst-case running time of insertion sort does not imply a Θ(n2) bound on running time of insertion sort on every input since T(n) = O(n2) & T(n) = Ω(n) for insertion sort BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
18
Using Θ-notation for Describing Running Times
Case (2) implies a Θ-bound on every input e.g., merge sort T(n) = O(nlgn) T(n) = Ω(nlgn) T(n) = Θ(nlgn) BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
19
Asymptotic Notation In Equations
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
20
Asymptotic notation appears on LHS of an equation
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
21
Other asymptotic notations – o-notation (small o)
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
22
o-notation BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
23
ω-notation (small omega notation)
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
24
Asymptotic comparison of functions
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
25
Analogy to the comparison of two real numbers
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
26
Analogy to the comparison of two real numbers
BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.