1 / 34

Lecture 2 Analysis of Algorithms

Lecture 2 Analysis of Algorithms. How to estimate time complexity? Analysis of algorithms Techniques based on Recursions. ACKNOWLEDGEMENTS : Some contents in this lecture source from slides of Yuxi Fu. ROADMAP. How to estimate time complexity? Analysis of algorithms

derron
Download Presentation

Lecture 2 Analysis of 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. Lecture 2Analysis of Algorithms • How to estimate time complexity? • Analysis of algorithms • Techniques based on Recursions ACKNOWLEDGEMENTS: Some contents in this lecture source from slides of Yuxi Fu

  2. ROADMAP • How to estimate time complexity? • Analysis of algorithms • worst case, best case? • Big-O notation Xiaojuan Cai

  3. Observation • System dependent effects. • Hardware: CPU, memory, cache, … • Software: compiler, interpreter, garbage collector, … • System: operating system, network, other applications, … • Easy, butdifficult to get precise measurements. Xiaojuan Cai

  4. % 1-sum int count = 0; for (int i = 0; i < N; i++) if (a[i] == 0) count++; Mathematical model Total running time =sum of cost × frequency for all operations. • Cost depends on machine, compiler. • Frequency depends on algorithm, input data. Xiaojuan Cai

  5. Mathematical model • Relative rather than Absolute. • Machine independent. • About large input instance • Time complexity of an algorithm is a function of the size of the input n. Xiaojuan Cai

  6. Input size -- convention • Sorting and searching: the size of the array • Graph: the number of the vertices and edges • Computational geometry: the number points or line segments • Matrix operation: the dimensions of the input matrices • Number theory and Cryptography: the number of bits of the input. Xiaojuan Cai

  7. Where are we? • How to estimate time complexity? • Analysis of algorithms • worst case, best case? • Big-O notation Xiaojuan Cai

  8. Searching • Problem: Searching • Input: An integer array A[1...n], and an integer x • Output: Does x exist in A? Does 45 exist in: 9, 8, 9, 6, 2, 56, 12, 5, 4, 30, 67, 93, 25, 44, 96 2, 4, 5, 6, 8, 9, 9, 12, 25, 30, 44, 56, 67, 93, 96 Linear searching v.s. Binary searching Xiaojuan Cai

  9. Binary searching 2, 4, 5, 6, 8, 9, 9, 12, 25, 30, 44, 56, 67, 93, 96 mid low high Xiaojuan Cai

  10. Quiz • A. 1 B.logn. C. n D. none of above Xiaojuan Cai

  11. Computational Complexity Xiaojuan Cai

  12. Where are we? • How to estimate time complexity? • Analysis of algorithms • worst case, best case? • Big-O notation Xiaojuan Cai

  13. Definition (O-notation) Let f(n) and g(n) : f(n) is said to be O(g(n)), written f (n) = O(g(n)),if∃c>0.∃n0.∀n ≥ n0.f (n) ≤ cg(n) Big-O Notation • The O-notation provides an upper bound of the running time; • f grows no faster than some constant times g. Xiaojuan Cai

  14. Examples • 10n2 + 20n = O(n2). • logn2 =O(logn). • log(n!) = O(nlogn). • Hanoi: T(n) = O(2n), n is the input size. • Searching: T(n) = O(n) Xiaojuan Cai

  15. Definition (Ω-notation) Let f(n) and g(n) : f(n) is said to be Ω(g(n)), written f (n) = Ω(g(n)), if∃c>0.∃n0.∀n ≥ n0.f (n) ≥cg(n) Big-Ω Notation • The Ω-notation provides an lower bound of the running time; • f(n) = O(g(n)) iff g(n) = Ω(f(n)). Xiaojuan Cai

  16. Does there exist f,g, such that f = O(g) and f = Ω(g)? Examples • log nk = Ω(logn). • log n! = Ω(nlogn). • n! = Ω(2n). • Searching: T(n) = Ω(1) Xiaojuan Cai

  17. Big-Θ notation • log n! = Θ(nlogn). • 10n2 + 20 n = Θ(n2) Definition (Θ-notation) f(n)=Θ(g(n)), if bothf(n)=O(g(n)) and f(n) = Ω (g(n)). Xiaojuan Cai

  18. Definition (o-notation) Let f(n) and g(n) : f(n) is said to be o(g(n)), written f (n) = o(g(n)), if∀c.∃n0.∀n ≥ n0.f (n) < cg(n) Small o-notation • log n! = o(nlogn)? • 10n2 + 20 n = o(n2)? • nlog n = o(n2)? Xiaojuan Cai

  19. Definition (ω-notation) Let f(n) and g(n) : f(n) is said to be ω(g(n)), written f (n) = ω(g(n)), if∀c.∃n0.∀n ≥ n0.f (n) > cg(n) Small ω-notation Xiaojuan Cai

  20. Quiz • A. O B.Ω. C. Θ D. none of above Xiaojuan Cai

  21. Approximation by Integration Xiaojuan Cai

  22. Suppose exists In terms of limits Xiaojuan Cai

  23. Definition (Complexity class) An equivalence relation R on the set of complexity functions is defined as follows: f Rg if and only if f (n) = Θ(g (n)). Complexity class Xiaojuan Cai

  24. Order of growth Assume the computer consumes 10-6s per instruction Xiaojuan Cai

  25. Order of growth Xiaojuan Cai

  26. Quiz • A. Θ(n2) B.Θ(n). C. Θ(nlogn) D. none of above Xiaojuan Cai

  27. Quiz • A. Θ(n2) B.Θ(n). C. Θ(nlogn) D. none of above Xiaojuan Cai

  28. Quiz • A. Θ(n2) B.Θ(n). C. Θ(nlogn) D. none of above Xiaojuan Cai

  29. Quiz • A. Θ(n2) B.Θ(n). C. Θ(nlogn) D. none of above Xiaojuan Cai

  30. Quiz • A. Θ(n2) B.Θ(n). C. Θ(nlogn) D. none of above Xiaojuan Cai

  31. Quiz • θ(nloglogn) • A. Θ(n2) B.Θ(n). C. Θ(nlogn) D. none of above Xiaojuan Cai

  32. Amortized analysis The total number of append is n. The total number of delete is between 0 and n-1. So the time complexity is O(n). Xiaojuan Cai

  33. Memory • Time: Time complexity • faster, better. • Memory: Space complexity • less, better. • Space complexity <= Time complexity Xiaojuan Cai

  34. Conclusion • How to estimate time complexity? • Analysis of algorithms • worst case, best case? • Big-O notation Xiaojuan Cai

More Related