Instructor

Dr. Sohail Aslam Ph.D Computer Science University of Illinois at UrbanaChampaign

Introduction
Model of computation, 2d maxima
Analysis of 2d Maxima
Runtime analysis
2d maxima: sweep line algorithm
Asymptotic Notation
Asymptotic notation, merge sort
Analysis of Merge Sort
Solving recurrence relations, median selection
Median selection  partitioning algorithm
Analysis of median selection, binary heaps, sorting
Heap sort, analysis of heap sort
Quick sort
Analysis of quick sort
Lower bounds for sorting, Linear time sorting, counting sort
Bucket sort, radix sort, dynamic programming, Fibonacci sequence
Dynamic programming  edit distance
Dynamic programming  edit distance algorithm
Dynamic programming  chain matrix multiply
Dynamic programming  chain matrix multiply
Dynamic programming  0/1 knapsack
Dynamic programming  0/1 knapsack
Greedy algorithms  coin change problem
Greedy algorithms  Huffman encoding
Greedy algorithms  Huffman encoding
Greedy algorithms  Activity scheduling
Greedy algorithms  fractional knapsack, Graphs  definitions
Graphs  representations, traversal
Graphs  breadthfirst search, generic traversal algorithms
Graphs  generic traversal algorithms
Graphs  depthfirst search, timestamp structure
Graphs  cycles, topological sorting
Graphs  strong components
Graphs  strong components, minimum spanning tree (MST)
Graphs  MST: generic approach
Graphs  MST: Kruskal's algorithm
Graphs  MST: Prim's algorithm
Graphs  shortest paths
Graphs  Dijkstra's algorithm
Graphs  Dijkstra's algorithm, BellmanFord algorithm
Graphs  allpairs shortest path, FloydWarshall's algorithm
Graphs  FloydWarshall algorithm
Complexity theory classes P, NP
Complexity theory  Reductions, graph coloring
Complexity theory  boolean satisfiability, independent sets
