| Lecture |
Date |
Topics |
Reading
in CLRS |
HW
out |
HW due |
| 1 |
9/4 |
Introduction,
Insertion
Sort,
Asymptotics |
Ch. 1,2 |
HW 0 |
|
| 2 |
9/6 |
Divide and
Conquer, Merge Sort, Recursion |
Ch. 2,3 |
HW 0 |
|
| 3 |
9/11 |
Recurrences,
Solution
methods,
More D&C |
Ch. 4 | HW 1 | |
| 4 |
9/13 |
Randomized algorithms | Ch. 5 |
||
| 5 |
9/18 |
Quicksort | Ch. 7 | ||
| 6 |
9/20 |
Order
statistics |
Ch. 9 |
HW 2 | HW 1 |
| 7 |
9/25 |
Comparison lower bounds; Counting sort, Radix sort | Ch. 8 | ||
| 8 |
9/27 |
Priority
queues, Heaps, Heapsort |
Ch. 6 | ||
| 9 |
10/2 |
Binary
search trees |
Ch 12 |
||
| 10 |
10/4 |
2-3-4 trees, B-trees, Red-black trees | Ch. 18, 13 |
HW 3 | HW 2 |
| 11 |
10/9 |
Augmenting data structures | Ch 14 |
||
| 12 |
10/11 |
Greedy algorithms | Ch. 16 | ||
| 13 |
10/16 |
Dynamic programming | Ch. 15 | ||
| 14 | 10/18 |
Graphs, Breadth-first search, Dijkstra's algorithm | Ch. 22.1-2, 24.3 | HW 4 | HW 3 |
| 10/23 |
Midterm in
class |
|
|
||
| 15 |
10/25 |
Depth-first search, strongly connected components, topological order | Ch. 22.3-5 |
||
| 16 |
10/30 |
Minimum
spanning trees, Disjoint sets |
Ch. 23, 21 |
|
|
| 17 |
11/1 |
Shortest paths with negative weights | Ch. 24 |
HW 5 | HW 4 |
| 18 |
11/8 |
All-pairs shortest paths, transitive closure and MM | Ch. 25 | ||
| 19 |
11/13 |
Network
flow, bipartite matching |
Ch. 26.1-3 |
||
| 20 |
11/15 |
Linear
programming models |
Ch. 29.1-2,4 |
|
|
| 21 |
11/20 |
NP-completeness |
Ch. 34 |
HW 6 | HW 5 |
| 22 |
11/27 |
NP-completeness | Ch. 34 |
||
| 23 |
11/29 |
NP-completeness | Ch. 34 |
||
| 24 |
12/4 |
Approximation
algorithms |
Ch. 35 |
HW 6 | |
| 12/6 |
Final in class |