Presentation is loading. Please wait.

Presentation is loading. Please wait.

Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) =

Similar presentations


Presentation on theme: "Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) ="— Presentation transcript:

1 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) =

2 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) = c the logarithm function:f(n) = log b n

3 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) = c the logarithm function:f(n) = log b n the linear function:f(n) =

4 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) = c the logarithm function:f(n) = log b n the linear function:f(n) = n the n-log-n function:f(n) = n log n

5 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) = c the logarithm function:f(n) = log b n the linear function:f(n) = n the n-log-n function:f(n) = n log n the quadratic function:f(n) = n 2

6 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) = c the logarithm function:f(n) = log b n the linear function:f(n) = n the n-log-n function:f(n) = n log n the quadratic function:f(n) = n 2 the cubic function and other polynomials f(n) = n 3 f(n) =

7 Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) = c the logarithm function:f(n) = log b n the linear function:f(n) = n the n-log-n function:f(n) = n log n the quadratic function:f(n) = n 2 the cubic function and other polynomials f(n) = n 3 the exponential function: f(n) =

8 Analysis of Algorithms [ Section 4.1 ] Comparing growth rates f(n) = c f(n) = log b n f(n) = n f(n) = n log n f(n) = n 2 f(n) = n 3 f(n) = b n

9 Analysis of Algorithms [ Section 4.2 ] How to analyze algorithms - Experimental studies

10 Analysis of Algorithms [ Section 4.2 ] How to analyze algorithms - Counting the number of primitive operations Note: possible difference between the worst-case running time and the average-case running time

11 Analysis of Algorithms [ Section 4.2.3 ] Asymptotic notation Big-Oh notation: Let f(n) and g(n) be functions from integers to reals. We say that f(n) = O(g(n)) if there are constants c>0 and n 0 >0 such that f(n) · c g(n)for every n ¸ n 0 We also say that f(n) is order of g(n).

12 Analysis of Algorithms [ Section 4.2.3 ] Examples: f(n) = 5n-3g(n) = n

13 Analysis of Algorithms [ Section 4.2.3 ] Examples: f(n) = 7n 2 +(n 3 )/5g(n) = n 4

14 Analysis of Algorithms [ Section 4.2.3 ] Examples: Insert-sort algorithm // input: array A, output: array A is sorted int i,j; int n = A.length; for (i=0; i<n-1; i++) { j = i; while ((j>=0) && (A[j+1]<A[j])) { int tmp = A[j+1]; A[j+1] = A[j]; A[j] = tmp; j--; }

15 Analysis of Algorithms [ Section 4.2.3 ] Asymptotic notation continued Big-Omega notation: Let f(n) and g(n) be functions from integers to reals. We say that f(n) =  (g(n)) if there are constants c>0 and n 0 >0 such that f(n) ¸ c g(n)for every n ¸ n 0

16 Analysis of Algorithms [ Section 4.2.3 ] Asymptotic notation continued Big-Theta notation: Let f(n) and g(n) be functions from integers to reals. We say that f(n) = £ (g(n)) if f(n) = O(g(n)) and f(n) =  (g(n)).

17 Analysis of Algorithms [ Section 4.2.5 ] Words of caution: what is 10 100 n ? exponential algorithms are a big NO (unless the input is really small)


Download ppt "Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) ="

Similar presentations


Ads by Google