Analysis of Algorithms Examples of functions important in CS: the - - PowerPoint PPT Presentation

analysis of algorithms
SMART_READER_LITE
LIVE PREVIEW

Analysis of Algorithms Examples of functions important in CS: the - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) =

slide-2
SLIDE 2

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) = c

  • the logarithm function: f(n) = logb n
slide-3
SLIDE 3

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) = c

  • the logarithm function: f(n) = logb n
  • the linear function:

f(n) =

slide-4
SLIDE 4

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) = c

  • the logarithm function: f(n) = logb n
  • the linear function:

f(n) = n

  • the n-log-n function:

f(n) = n log n

slide-5
SLIDE 5

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) = c

  • the logarithm function: f(n) = logb n
  • the linear function:

f(n) = n

  • the n-log-n function:

f(n) = n log n

  • the quadratic function: f(n) = n2
slide-6
SLIDE 6

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) = c

  • the logarithm function: f(n) = logb n
  • the linear function:

f(n) = n

  • the n-log-n function:

f(n) = n log n

  • the quadratic function: f(n) = n2
  • the cubic function and other polynomials

f(n) = n3 f(n) =

slide-7
SLIDE 7

Analysis of Algorithms

[ Section 4.1 ]

Examples of functions important in CS:

  • the constant function:

f(n) = c

  • the logarithm function: f(n) = logb n
  • the linear function:

f(n) = n

  • the n-log-n function:

f(n) = n log n

  • the quadratic function: f(n) = n2
  • the cubic function and other polynomials

f(n) = n3

  • the exponential function:

f(n) =

slide-8
SLIDE 8

Analysis of Algorithms

[ Section 4.1 ]

Comparing growth rates

  • f(n) = c
  • f(n) = logb n
  • f(n) = n
  • f(n) = n log n
  • f(n) = n2
  • f(n) = n3
  • f(n) = bn
slide-9
SLIDE 9

Analysis of Algorithms

[ Section 4.2 ]

How to analyze algorithms

  • Experimental studies
slide-10
SLIDE 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

slide-11
SLIDE 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 n0>0 such that f(n) ≤ c g(n) for every n ≥ n0 We also say that f(n) is order of g(n).

slide-12
SLIDE 12

Analysis of Algorithms

[ Section 4.2.3 ]

Examples: f(n) = 5n-3 g(n) = n

slide-13
SLIDE 13

Analysis of Algorithms

[ Section 4.2.3 ]

Examples: f(n) = 7n2+(n3)/5 g(n) = n4

slide-14
SLIDE 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--; } }

slide-15
SLIDE 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 n0>0 such that f(n) ≥ c g(n) for every n ≥ n0

slide-16
SLIDE 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)).

slide-17
SLIDE 17

Analysis of Algorithms

[ Section 4.2.5 ]

Words of caution:

  • what is 10100n ?
  • exponential algorithms are a big NO (unless the input is

really small)