analysis of algorithms cps212 gordon college. measuring the efficiency of algorithms there are 2...
Post on 30-Jan-2016
216 views
TRANSCRIPT
Analysis of Algorithms
CPS212
Gordon College
Measuring the efficiency of algorithms
There are 2 algorithms: algo1 and algo2 that produce the same results.
How do you choose which algorithm to keep. Algorithm Efficiency
Measuring the efficiency of algorithms
How do you determine an algorithm’s inherent efficiency? Code them up and compare their running times on
a lab machine. How were they coded? We want to compare the
algorithms - not their implementations What computer do we use? What else is running? What data is a fair test of an algorithm’s efficiency.
Measuring the efficiency of algorithms
Goal: Measure the efficiency of an algorithm -
independent of implementation, hardware, or data. Solution:
Analyze and represent the number of operations the algorithm will perform as a function of input.
Example: Copying an array with n elements requires x
operations. What is x?
Growth rates Algo1 requires n2 / 2 operations to solve
a problem with input size n Algo2 requires 5n + 10 operations
Which is the better algorithm for the job?
Order of magnitude growth analysis A function f(x) is O(g(x)) if and only if
there exist 2 positive constants, c and n, such that | f(x) |≤ cg(x) for all x > n
size of input set
number ofoperations
cg(x)
f(x)
Order of magnitude growth analysis Asymptotic growth - as the growth approaches infinity An asymptote of a real-valued function y = f(x) is a
curve which describes the behavior of f as either x or y tends to infinity.
size of input set
number ofoperations
cg(x)
f(x)
Order of magnitude growth analysis Important points:
Focus only on the growth Shape of g(x) is essential As the input set grows large (ignore the shape for small x)
size of input set
number ofoperations
cg(x)
f(x)
Standard function shapes: constant O(1)
Examples?
size of input set
number ofoperations
= cg(x)f(x)
Standard function shapes: linear O(x)
Examples?
size of input set
number ofoperations
cg(x)
f(x)=ax+b
Standard function shapes: logarithmic O(log x) (base 2)
QuickTime™ and a decompressor
are needed to see this picture.
bc = a logba = c 23 = 8 log28 = 3
log(x*y) = log x + log y
log(xa) = a log x
Examples?
Standard function shapes: Polynomial O(x2)
Examples?
Polynomial vs. Linear
Polynomial vs. Linear
Example: 50n + 20 & n2
At what point will n2 surpass 50n+20?
n2 = 50n+20 Solve for x…quadratic formula
n2 - 50n - 20 = 0
n = 101/2 = 50.5 n = -1/2
0
500
1000
1500
2000
2500
3000
3500
4000
0 10 20 30 40 50 60 70
Standard function shapes: Exponential O(cx)
Examples?Hamiltonian CircuitTraveling SalesmanOptimization problems
Solution:Limit to small input setsIsolate special casesFind approximate solution
(near optimal)
Complexity in action
QuickTime™ and a decompressor
are needed to see this picture.
Real Examples Searching (sequential)
Unit of work: comparisons Best case: O(1) [theta] Worst case: O(n) [theta] Average Case: O(n) [theta]
Real Examples Sort (selection)
Unit of work: comparisons and exchanges Best case: O(n2) [theta] Worst case: O(n2) [theta] Average Case: O(n2) [theta]
Real Examples Search (binary)
Unit of work: comparisons Best case: O(1) [theta] Worst case: O(log n) [theta] Average Case: O(log n) [theta]