Asymptotic Growth Rate
Algorithm Theoretical Analysis
Time for executing the basic operation
Time for overhead instructions (e.g. Initialization)
Time for the control instructions (e.g. incrementing an
index to control a loop

Dynamic Programming
Backgrounds
Explores the space of all possible
solutions
Decompose a problem into a series of
subproblems
Build up correct solutions to larger and larger
subproblems
Backgrounds
The term Dynamic Progr

Recurrences
Goal
n Learn how to design and analyze recursive
algorithms
n Learn when to use or not to use recursive
algorithms
n Derive & solve recurrence equations to
analyze recursive algorithms
Recursion
What is the rec

Review: Graph Theory and
Representation
Graph Algorithms
Graphs and fundamental theorems about
Graphs
Graph implementation
Graph Algorithms
Shortest paths
Minimum spanning tree
What can graphs model?
Cost of wiring electronic componen

Greedy Algorithms
Greedy Technique
What is it?
Quick and dirty approach to solving optimization
problems
Not necessarily optimal
Problems explored
Coin changing problem
Minimum spanning tree algorithms
Dijkstras algorithm for si

Disjoint Data Sets
Outline
Disjoint set data structure
Applications
Implementation
Data Structures for Disjoint Sets
A disjoint-set data structure is a collection of sets S = cfw_S1 Sk , such
that Si Sj = for i j ,
The methods are: