CS 660: Combinatorial Algorithms
Introduction Part A
[To Lecture Notes Index]
San Diego State University  This page last updated Septemper 3, 1995
Contents of Introduction Part A Lecture
 References
 Mathematical Analysis of Algorithms
 Model of Computing
 Asymptotic Notation
Introduction To Algorithms, Corman, Leiserson,Rivest, Chapters 14
If analysis of algorithms is the answer, what is the question?
Given two or more algorithms for the same task, which is better?
 Under which condition is bubble sort better than insertion sort?
What computing resources does an algorithm require?
 How long will it take bubble sort to sort a list of N items?
Goal of mathematical analysis is a function of the resources required of an
algorithm
On what computer?
What is a Computer?
Randomaccess machine (RAM)
 Single processor
 Instructions executed sequentially
 Each operation requires the same amount of time

Single cost vs. Lg(N) cost
 Time required for basic operation?

 3 + 6
 1234!
Insertion Sort
A[0] =  infinity
for K = 2 to N do
begin
 J = K;
 Key = A[J];
 while Key < A[J1] do
 begin
A[J] = A[J1];
J = J  1;
 end while;
 A[J] = Key;
end for;
Complexity
 Resources required by the algorithm as a function of the input
size
Worstcase Analysis
 Complexity of an algorithm based on worst input of each size
Averagecase Analysis
 Complexity of an algorithm averaged over all inputs of each size

Insertion Sort
Comparisons Element moves
worst case (N+1)N/2  1 (N1)N/2
average case (N+1)N/4  1/2 (N1)N/4
Asymptotically tight bound



Asymptotic upper bounds



Common Myths and Errors
 Everyone incorrectly writes:

 instead of:


 or even that there is an n such that
 Let f(n) = 2n + 10, and g(n) = n then

 f(n) = O(g(n)) but f(n) > g(n)
 Using O( ) when mean
Bubble vs. Insertion Sort
Worst case Average case
Bubble sort
Insertion Sort
Bubble Sort
Comparisons Element moves
worst case (N1)N/2 3(N1)N/2
average case (N1)N/2 3(N1)N/4
best case (N1)N/2 0
Insertion Sort
Comparisons Element moves
worst case (N+1)N/2  1 (N1)N/2
average case (N+1)N/4  1/2 (N1)N/4
best case N  1 0
Bubble vs. Insertion SortTiming Results
Worst Case
N Bubble Insertion
100 1 1
200 5 3
400 19 11
800 79 42
1600 317 166
Average Case
N Bubble Insertion
100 1 0
200 3 1
400 14 5
800 56 21
1600 228 84
What is wrong with this Picture?