Chapter 4 Analysis Tools Zeinab Eid Algorithm Analysis
Chapter 4 Analysis Tools Zeinab Eid Algorithm Analysis 1
Zeinab Eid Algorithm Analysis 2
Why we Analyze Algorithms We try to save computer resources such as: § Memory space used to store data structures, Space Complexity § CPU time, which is reflected by Algorithm Run Time Complexity. Zeinab Eid Algorithm Analysis 3
4. 1 Seven Functions 1. The Constant Function: f(n)= c, where c is some fixed constant, c=5, c=100, or c=210, so we let g(n)=1, so f(n)=cg(n) 2. The Logarith Function: f(n)= logbn x = logbn iff bx=n , (see Proposition 4. 1), the most common base for logarithmic function in computer science is 2. 3. Linear Function: f(n)= n , important for algorithms on vectors (one dim. Arrays). Zeinab Eid Algorithm Analysis 4
4. The N-Log-N Function: f(n)= nlogn This function grows a little faster than linear function and a lot slower than quadratic function. 5. The Quadratic Function: f(n)= n 2 It’s important for algorithms of nested loops. 6. The Cubic Function (Polynomial): f(n)= n 3 f(n)=a 0+a 1 n+ a 2 n 2+…+adnd, is a polynomial of degree d, where a 0 , a 1 , …. , ad are constants. 7. The Exponential Function: f(n)= bn Zeinab Eid Algorithm Analysis 5
Zeinab Eid Algorithm Analysis 6
Zeinab Eid Algorithm Analysis 7
Zeinab Eid Algorithm Analysis 8
Zeinab Eid Algorithm Analysis 9
Zeinab Eid Algorithm Analysis 10
Zeinab Eid Algorithm Analysis 12
Zeinab Eid Algorithm Analysis 13
Zeinab Eid Algorithm Analysis 14
We define a set of primitive operations such as the following: • Assigning a value to a variable • Calling a method • Performing an arithmetic operation (for example, adding two numbers) • Comparing two numbers • Indexing into an array • Following an object reference • Returning from a method. Zeinab Eid Algorithm Analysis 15
Zeinab Eid Algorithm Analysis 16
Zeinab Eid Algorithm Analysis 17
Primitive Operations Zeinab Eid Algorithm Analysis 18
Counting Primitive Operations Zeinab Eid Algorithm Analysis 19
Zeinab Eid Algorithm Analysis 20
Zeinab Eid Algorithm Analysis 21
Zeinab Eid Algorithm Analysis 22
4. 2. 3 Asymptotic Notation Zeinab Eid Algorithm Analysis 23
Example Zeinab Eid Algorithm Analysis 24
Zeinab Eid Algorithm Analysis 25
Zeinab Eid Algorithm Analysis 26
Properties of Big-Oh Notation Zeinab Eid Algorithm Analysis 27
Zeinab Eid Algorithm Analysis 28
Zeinab Eid Algorithm Analysis 29
Zeinab Eid Algorithm Analysis 30
Zeinab Eid Algorithm Analysis 31
Zeinab Eid Algorithm Analysis 32
Zeinab Eid Algorithm Analysis 33
Big-Omega and Big-Theta Zeinab Eid Algorithm Analysis 34
Zeinab Eid Algorithm Analysis 35
Big-Omega • Just as Big-Oh notation provides us a way of saying that a function f(n) is “less than or equal to” another function, • Big-Omega notation provides us a way of saying that a function f(n) is “greater than or equal to” another function. • Let f(n) and g(n) be functions mapping nonnegative integers: We say that f(n) is Ω(g(n)) if g(n) is O(f(n)) • That’s there is a real constant c>0 and an integer constant n 0 ≥ 1 such that: f(n) ≥ cg(n), for n ≥ n 0 Zeinab Eid Algorithm Analysis 36
Big-Theta • In addition, there is a notation that allows us to say that two functions grow at the same rate , up to a constant factor. • We say that f(n) is Θ(g(n)) if f(n) is O(g(n)) and f(n) is Ω(g(n)), • That’s, there are real constants c’>0 and c”>0 and an integer constant n 0 ≥ 1 such that: c’g(n) ≤ f(n) ≥ c”g(n), for n ≥ n 0. Zeinab Eid Algorithm Analysis 37
Example • • f(n) = 3 nlog n + 4 n + 5 log n is Θ(nlog n) Since 3 nlog n + 4 n + 5 log n ≥ 3 nlog n for n ≥ 2 So, f(n) is Ω(nlog n) Since 3 nlog n + 4 n + 5 log n ≤ (3+4+5)nlog n for n ≥ 2 • So, f(n) is O(nlog n) • Thus, f(n) is Θ(nlog n) Zeinab Eid Algorithm Analysis 38
Zeinab Eid Algorithm Analysis 39
- Slides: 38