1 / 25

Understanding Algorithms: Types, Running Times, and Examples

This article provides an overview of algorithms, focusing on their definitions, types, and representative problems. Key algorithm categories include Interval Scheduling, Bipartite Matching, and Independent Set algorithms. It also discusses search problems and compares linear and binary search running times. The concept of Big-Oh notation and its implications for algorithm efficiency are explored through examples. This guide aims to deepen your understanding of algorithm efficiency and decision-making in selecting the right algorithm based on problem requirements.

ajay
Télécharger la présentation

Understanding Algorithms: Types, Running Times, and Examples

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. Algorithms Algorithm: what is it ?

  2. Algorithms Algorithm: what is it ? Some representative problems : • Interval Scheduling

  3. Algorithms Algorithm: what is it ? Some representative problems : • Interval Scheduling • Bipartite Matching

  4. Algorithms Algorithm: what is it ? Some representative problems : • Interval Scheduling • Bipartite Matching • Independent Set

  5. Algorithms Algorithm: what is it ? Some representative problems : • Interval Scheduling • Bipartite Matching • Independent Set • Area of a Polygon

  6. Algorithms How to decide which algorithm is better ? Search problem Input : a sequence of n numbers (in an array A) and a number x Output : YES, if A contains x, NO otherwise

  7. Algorithms How to decide which algorithm is better ? Search problem Input : a sequence of n numbers (in an array A) and a number x Output : YES, if A contains x, NO otherwise What if A is already sorted ?

  8. Running Time O(n) – running time of the linear search O(log n) – running time of the binary search Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Examples : n, n3, log n, 2n, 7n2 + n3/3, 1, 1 + log n, n log n, n + log n

  9. Running Time n, n3, log n, 2n, 7n2 + n3/3, 1, 1 + log n, n log n, n + log n

  10. Running Time Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Example: Prove that n = O(n3)

  11. Running Time Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Example: Prove that n3 = O(7n2+n3/3)

  12. Running Time Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Example: Prove that n3 = O(n3/3-7n2)

  13. Running Time Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Example: Prove that log10 n = O(log n) And that log n = O(log10 n)

  14. Running Time Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Example: Prove that log10 n = O(log n) And that log n = O(log10 n)

  15. Running Time Def : Big-Oh (asymptotic upper bound) f(n) = O(g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) · c g(n) Example: what about 3n and 2n

  16. Running Time O(n) – running time of the linear search O(log n) – running time of the binary search Def : Big-Omega (asymptotic lower bound) f(n) = (g(n)) if there exists a constant c > 0 and a constant n0 such that for every n ¸ n0 we have f(n) ¸ c g(n) Examples : n, n3, log n, 2n, 7n2 + n3/3, 1, 1 + log n, n log n, n + log n

  17. Running Time O(n) – running time of the linear search O(log n) – running time of the binary search Def : Theta (asymptotically tight bound) f(n) = (g(n)) if there exists constants c1, c2 > 0 and a constant n0 such that for every n ¸ n0 we have c1 g(n) · f(n) · c2 g(n) Examples : n, n3, log n, 2n, 7n2 + n3/3, 1, 1 + log n, n log n, n + log n

  18. A survey of common running times Linear • for i=1 to n do • something Also linear : • for i=1 to n do • something • for i=1 to n do • something else

  19. A survey of common running times Example (linear time): Given is a point A=(ax, ay) and n points (x1,y1), (x2,y2), …, (xn,yn) specifying a polygon. Decide if A lies inside or outside the polygon.

  20. A survey of common running times Example (linear time): Given are n points (x1,y1), (x2,y2), …, (xn,yn) specifying a polygon. Compute the area of the polygon.

  21. A survey of common running times O(n log n) Or: • for i=1 to n do • for j=1 to log(n) do • something • for i=1 to n do • j=n • while j>1 do • something • j = j/2

  22. A survey of common running times Quadratic • for i=1 to n do • for j=1 to n do • something

  23. A survey of common running times Cubic

  24. A survey of common running times O(nk) – polynomial (if k is a constant)

  25. A survey of common running times Exponential, e.g., O(2k)

More Related