1 / 18

COP 3530 Spring2012 Data Structures & Algorithms

COP 3530 Spring2012 Data Structures & Algorithms. Discussion Session Week 5. Outline. Growth of functions Big Oh Omega Theta Little Oh. Growth of Functions. Gives a simple view of the algorithm’s efficiency . Allows us to compare the relative performance of alternative algorithms.

jadyn
Download Presentation

COP 3530 Spring2012 Data Structures & Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COP 3530 Spring2012Data Structures & Algorithms Discussion Session Week 5

  2. Outline • Growth of functions • Big Oh • Omega • Theta • Little Oh

  3. Growth of Functions Gives a simple view of the algorithm’s efficiency. Allows us to compare the relative performance of alternative algorithms. f1(n) is O(n) f2(n) is O(n^2)

  4. Growth of Functions Exact running time of an algorithm is usually hard to compute, and it’s unnecessary. For large enough inputs, the lower-order terms of an exact running time are dominated by high-order terms. f(n) = n^2 + 5n + 234 n^2 >> 5n + 234, when n is large enough

  5. Asymptotic Notation: Big Oh (O) f(n)= O(g(n)) iffthere exist positive constants c and n0 such that f(n) ≤ cg(n) for all n ≥ n0 O-notation to give an upper bound on a function

  6. Asymptotic Notation: Big Oh (O) Example 1[linear function] f(n) = 3n+2 For n >= 2, 3n+2 <= 3n+n <= 4n. So f(n) = O(n). We can arrive the same conclusion in other ways. For example, 3n + 2 <= 10n for n > 1. The specific values of c and n0 used to satisfy the definition of big oh are not important, we only say f(n) is big oh of g(n). c/n0 do not matter.

  7. Asymptotic Notation: Big Oh (O) Example 2[quadric function] f(n) = 10n^2+4n+2 For n >= 2, f(n) <= 10n^2+5n. For n>= 5, 5n < n^2. Hence for n>= n0 = 5, f(n) <= 10n^2+n^2 = 11n^2. Therefore, f(n) = O(n^2). Only the highest order term matters !!!

  8. Asymptotic Notation: Big Oh (O) Example 3[exponential function] f(n) = 6*2^n + n^2 For n>=4, n^2 <= 2^n. f(n) <= 6*2^n + 2^n = 7*2^n for n>=4 Therefore, 6*2^n + n^2 = O(2^n) Example 4[constant function] f(n) = 3 For any n, f(n) <= 4*1 Therefore, f(n) = O(1)

  9. Asymptotic Notation: Big Oh (O) Example 5[loose bounds] f(n) = 3n+3 For n >= 10, 3n+3 <= 3n^2. Therefore, f(n) = O(n^2). Usually, we mean tight upper bound when using big oh notation. Example 6[Incorrect bounds] 3n+2 != O(1) since we cannot find n0/c such that 3n + 2 <= c, when n>=c0 (n can be infinity). Similarly, 10n^2 + 6n + 2 != O(n).

  10. Asymptotic Notation: Big Oh (O) The specific values of c and n0 used to satisfy the definition of big oh are not important, we only say f(n) is big oh of g(n). c/n0 do NOT matter, WHY? f(n)=n. It’s close to 10n when comparing with n^2, n^3 f(n) is relatively small when n<n0

  11. Asymptotic Notation: Omega Notation Big oh provides an asymptotic upper bound on a function. Omega provides an asymptotic lower bound on a function.

  12. Asymptotic Notation: Omega Notation Example 7 f(n) = 3n+3 > 3n for all n. So f(n) = Omega(n) Example 8[loose bounds] f(n) = 3n+3 > 1 for all n, so f(n) = Omega(1)

  13. Asymptotic Notation: Theta Notation Theta notation is used when function f can be bounded both from above and below by the same function g

  14. Asymptotic Notation: Theta Notation Example 9: f(n) = 3n+3 is Theta(n), since n <= 3n+3 <= 4n, when n >= 3. Similarly, f(n) = 3n+2 is Theta(n) f(n) = 5n^2 - 10n + 9 is Theta(n^2) f(n) is Theta(g(n)) iff f(n) is Omega(g(n)) and O(g(n))

  15. Asymptotic Notation: Little oh (o) The asymptotic upper bound provided by O-notation may or may not be asymptotically tight. 2n = O(n) is tight, 2n = O(n^2) is not tight. We use o-notation to denote an upper bound that is NOT asymptotically tight.

  16. Asymptotic Notation: Little oh (o) f(n) = o(g(n)) iff f(n) = O(g(n)) and f(n) != Omega(g(n)) Example 10 3n+2 = o(n^2) as 3n+2 = O(n^2) and 3n+2 != Omega(n^2) Example 11 3n+2 != o(n) as 3n+2 = Omega(n)

  17. Review Big oh: upper bound on a function. Omega: lower bound. Theta: lower and upper bound. - f(n) is Theta(g(n)) iff f(n) is O(g(n)) and Omega(g(n)) Little oh: loose upper bound. - f(n) = o(g(n)) iff f(n) = O(g(n)) and f(n) != Omega(g(n))

  18. Office Hour This Week: Thursday 9th period at E309

More Related