Zeinab EidAlgorithm Analysis1 Chapter 4 Analysis Tools
Zeinab EidAlgorithm Analysis2
Zeinab EidAlgorithm Analysis3 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 EidAlgorithm Analysis4 4.1 Seven Functions 1.The Constant Function: f(n)= c, where c is some fixed constant, c=5, c=100, or c=2 10, so we let g(n)=1, so f(n)=cg(n) 2.The Logarith Function: f(n)= log b n x = log b n iff b x =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 EidAlgorithm Analysis5 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 +…+a d n d, is a polynomial of degree d, where a 0, a 1,…., a d are constants. 7.The Exponential Function: f(n)= b n
Zeinab EidAlgorithm Analysis6
Zeinab EidAlgorithm Analysis7
Zeinab EidAlgorithm Analysis8
Zeinab EidAlgorithm Analysis9
Zeinab EidAlgorithm Analysis10
Zeinab EidAlgorithm Analysis Primitive Operations If we wish to analyze
Zeinab EidAlgorithm Analysis12
Zeinab EidAlgorithm Analysis13
Zeinab EidAlgorithm Analysis14
Zeinab EidAlgorithm Analysis15 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 EidAlgorithm Analysis16
Zeinab EidAlgorithm Analysis17
Zeinab EidAlgorithm Analysis18 Primitive Operations
Zeinab EidAlgorithm Analysis19 Counting Primitive Operations
Zeinab EidAlgorithm Analysis20
Zeinab EidAlgorithm Analysis21
Zeinab EidAlgorithm Analysis22
Zeinab EidAlgorithm Analysis Asymptotic Notation
Zeinab EidAlgorithm Analysis24 Example
Zeinab EidAlgorithm Analysis25
Zeinab EidAlgorithm Analysis26
Zeinab EidAlgorithm Analysis27 Properties of Big-Oh Notation
Zeinab EidAlgorithm Analysis28
Zeinab EidAlgorithm Analysis29
Zeinab EidAlgorithm Analysis30
Zeinab EidAlgorithm Analysis31
Zeinab EidAlgorithm Analysis32
Zeinab EidAlgorithm Analysis33
Zeinab EidAlgorithm Analysis34 Big-Omega and Big-Theta
Zeinab EidAlgorithm Analysis35
Zeinab EidAlgorithm Analysis36 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 non- negative 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 EidAlgorithm Analysis37 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 EidAlgorithm Analysis38 Example f(n) = 3nlog n + 4n + 5log n is Θ(nlog n) Since 3nlog n + 4n + 5log n ≥ 3nlog n for n ≥2 So, f(n) is Ω(nlog n) Since 3nlog n + 4n + 5log n ≤ (3+4+5)nlog n for n ≥2 So, f(n) is O(nlog n) Thus, f(n) is Θ(nlog n)
Zeinab EidAlgorithm Analysis39