KEMBAR78
Computational Complexity | PPTX
Computational Complexity
Kasun Ranga Wijeweera
(Email: krw19870829@gmail.com)
Background
• The running time of a program is proportional to some
constant multiplied by one of these terms plus some smaller
terms
Leading Term + Smaller Terms (Negligible for larger N)
Examples
• N3 + 5 * N2 – 3 * N + 7
N3 is the leading term
• N = 108
3 * N2 and 2 * N3
Constant coefficients can be ignored
Computational Complexity
• Here the worst case performance of algorithms is studied
• Constant factors are ignored
• Determine the functional dependence of the running time
Definition of Big-Oh Notation
• A function g(N) is said to O(f(N)) if there exists constants c0
and N0 such that g(N) is less than c0 * f (N) for all N > N0
Examples
• 7 * N - 2
7 *N – 2 is O (N)
Take c0 = 7, N0 = 1
• 3 * N3 + 20 * N2 + 5
3 * N3 + 20 * N2 + 5 is O (N3)
Take c0 = 4, N0 = 21
• 3 * log N + 5
3 * log N +5 is O (log N)
Take c0 = 11, N0 = 2
Problem
• 7 * N – 2 < N2
Take c0 = 7, N0 = 1
?
Growth Rate
• Functions in order of increasing growth rate is as follows
 1
 log N
 N
 N log N
 N2
 N3
 2N
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)
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
A Sample C Program
void main ()
{
clrscr ();
clock_t start, end;
start = clock ();
delay (1000);
end = clock();
cout << “Time = ” << (end - start);
getch();
}
Required Header Files
# include <conio.h>
# include <fstream.h>
# include <dos.h>
# include <time.h>
Reference
Any Questions?
Thank You!

Computational Complexity

  • 1.
    Computational Complexity Kasun RangaWijeweera (Email: krw19870829@gmail.com)
  • 2.
    Background • The runningtime of a program is proportional to some constant multiplied by one of these terms plus some smaller terms Leading Term + Smaller Terms (Negligible for larger N)
  • 3.
    Examples • N3 +5 * N2 – 3 * N + 7 N3 is the leading term • N = 108 3 * N2 and 2 * N3 Constant coefficients can be ignored
  • 4.
    Computational Complexity • Herethe worst case performance of algorithms is studied • Constant factors are ignored • Determine the functional dependence of the running time
  • 5.
    Definition of Big-OhNotation • A function g(N) is said to O(f(N)) if there exists constants c0 and N0 such that g(N) is less than c0 * f (N) for all N > N0
  • 6.
    Examples • 7 *N - 2 7 *N – 2 is O (N) Take c0 = 7, N0 = 1 • 3 * N3 + 20 * N2 + 5 3 * N3 + 20 * N2 + 5 is O (N3) Take c0 = 4, N0 = 21 • 3 * log N + 5 3 * log N +5 is O (log N) Take c0 = 11, N0 = 2
  • 7.
    Problem • 7 *N – 2 < N2 Take c0 = 7, N0 = 1 ?
  • 8.
    Growth Rate • Functionsin order of increasing growth rate is as follows  1  log N  N  N log N  N2  N3  2N
  • 9.
    Examples of AlgorithmRunning 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 CProgram void main () { clrscr (); clock_t start, end; start = clock (); delay (1000); end = clock(); cout << “Time = ” << (end - start); getch(); }
  • 12.
    Required Header Files #include <conio.h> # include <fstream.h> # include <dos.h> # include <time.h>
  • 13.
  • 14.
  • 15.