1 / 15

Algorithm Complexity

Algorithm Complexity. Level II, Term ii CSE – 243 Md. Monjur-ul-hasan Lecturer Dept of cse , cuet Email: mail@monjur-ul-hasan.info. A motivation for complexity. Talking about running time and memory space of algorithms is difficult.

ingrid
Download Presentation

Algorithm Complexity

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. Algorithm Complexity Level II, Term ii CSE – 243 Md. Monjur-ul-hasan Lecturer Dept of cse, cuet Email: mail@monjur-ul-hasan.info

  2. A motivation for complexity • Talking about running time and memory space of algorithms is difficult. • Different computers will run them at different speeds and memory • Different problem sizes run for a different amount of time and memory(even on same computer). • Different inputs of the same size run for a different amount of time and memory. Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  3. Definition: Complexity • Efficiency or complexity of an algorithm is stated as a function relating the input length to the number of steps (time complexity) or storage locations (space complexity). Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  4. exp (n) n log n More Curve Fig 1.3 Fundamental Computer Algorithm By, E. Horowitz S. Sahni S. Rajasekaran f(n) n Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  5. Using Upper and Lower Bounds to talk about running time. Running time (and memory) on some computer Upper Bound Different inputs Lower Bound 5 10 15 20 Md. Monjur-ul-hasan. Lecturer, Dept of CSE CUET Problem Size

  6. Bounds on running time • We want to bound the running time: • “for arrays of size n it takes my computer 45·n2 milliseconds at most to sort the array with bubblesort” • But what about other computers? (faster/slower) • Instead we say: • “On any computer, there is a constant c such that it takes at most c·n2 time units to sort an array of size n with bubblesort” • How is this sentence useful? Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  7. Big O notation. • We say that running time of an alg. is O(f(n)) If there exists c such that for large enough n: RunningTime(n) < c·f(n) Translation: From some point c·f(n) is an upper bound on the running time. • Why only for “large enough n”? Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  8. Big-O notation • Do not assume that because we analyze running time asymptotically we no longer care about the constants. • If you have two algorithms with different asymptotic limits – easy to choose. • (may be misleading if constants are really large). • Usually we are happy when something runs in polynomial time and not exponential time. O(n2) is much much better than O(2n). Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  9. Use of big-O notation • Example: The running time of bubble sort on arrays of size n is O(n2). Translation: for a sufficiently large array, the running time is less than c·n2 for some c (No matter how bad the input is). Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  10. Big Omega • For lower bounds we use Ω(f(n)). • I.e., if we say the running time of an algorithm is Ω(f(n)), we mean thatRunningTime(n)>c·f(n) for some c. Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  11. An Example: • Checking a the number n is prime. • We can try and divide the number n by all integers in the range 2,…,n1/2. • Best case: sometimes we find it isn’t prime really quickly (e.g. it divides by 2). • Worst case:sometimes the number is prime and we try n1/2 different divisions. • Running time is O(n1/2), and is also Ω(1). Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  12. Bounds might not be tight • We saw that finding out if a number n is prime takes us O(n1/2) time. • It also takes us O(n5) time. • The second bound guarantees less. It is not tight. Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  13. Big Theta Notation • The function f(n) = Θ(g(n)) iff there exists positive constants c1 and c2 such that c1Xg(n) < f(n) < c2Xg(n). • Average time Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  14. Measurement: Tabular Method Complexity: O(n) Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

  15. Bounds might not be tight Complexity: O(mn) Md. Monjur-ul-hasan. Lecturer, Dept. of CSE CUET

More Related