# computational complexity

Post on 13-Jun-2015

203 views

Embed Size (px)

TRANSCRIPT

- 1. Computational ComplexityKasun Ranga Wijeweera(Email: krw19870829@gmail.com)

2. Background The running time of a program is proportional to someconstant multiplied by one of these terms plus some smallertermsLeading Term + Smaller Terms (Negligible for larger N) 3. Examples N3 + 5 * N2 3 * N + 7N3 is the leading term N = 1083 * N2 and 2 * N3Constant coefficients can be ignored 4. Computational Complexity Here the worst case performance of algorithms is studied Constant factors are ignored Determine the functional dependence of the running time 5. Definition of Big-Oh Notation A function g(N) is said to O(f(N)) if there exists constants c0and N0 such that g(N) is less than c0 * f (N) for all N > N0 6. Examples 7 * N - 27 *N 2 is O (N)Take c0 = 7, N0 = 1 3 * N3 + 20 * N2 + 53 * N3 + 20 * N2 + 5 is O (N3)Take c0 = 4, N0 = 21 3 * log N + 53 * log N +5 is O (log N)Take c0 = 11, N0 = 2 7. Problem 7 * N 2 < N2Take c0 = 7, N0 = 1? 8. Growth Rate Functions in order of increasing growth rate is as follows 1 log N N N log N N2 N3 2N 9. Examples of Algorithm Running Times Min element of an array: O (N) Closest points in the plane,i.e. smallest distance pairs: N (N - 1)/2 O (N2) 10. Comparing Algorithms Experimentally Implement each algorithm Lots of work Error prone Run it with sample data Count the time Same hardware and software are used 11. A Sample C Programvoid main (){clrscr ();clock_t start, end;start = clock ();delay (1000);end = clock();cout