Date | Description |
---|---|
September 24 |
Abstract data types; worst case running time MW 1.1-1.2, 2.1-2.4.2 |
September 26 | Big O, big Omega, big Theta; rules of sum and product for big O |
September 29 |
Dictionary ADT; implementations by unsorted and sorted lists, binary search trees MW 4.1-4.3 |
October 1 |
Quicksort implemented recursively and using a stack MW 3.6 Quicksort handout |
October 3 |
AVL trees: height, lookUp MW 4.4 |
October 6 | AVL trees: insert |
October 8 |
AVL trees: remove; splay trees MW 4.5 |
October 10 | Splay method |
October 13 |
Hashing MW 5.1-5.4 |
October 15 |
Rehashing MW 5.5 |
October 17 |
Universal hashing; mergesort MW 5.8, 7.6 Proof for universal hashing |
October 20 |
Graphs MW 9.1 |
October 22 |
Topological sort MW 9.2 |
October 24 |
Breadth-first search MW 9.3.1 |
October 29 |
Intro to parallelism DG 2 |
October 31 |
Fork-Join programs DG 3 |
November 3 |
Analyzing parallel programs; parallel prefix DG 4-5 |
November 5 | Parallel quicksort |
November 7 | Parallel mergesort |
November 10 |
Concurrency and locks DG 6 |
November 12 |
Priority queues: heap insert MW 6.1-6.3 |
November 14 |
Heap deleteMin, buildHeap MW 7.5 |
November 17 |
buildheap analysis, heapsort MW 9.3.2 |
November 19 | Dijkstra's algorithm |
November 21 | Correctness and analysis of Dijkstra's algorithm |
November 24 |
Minimum spanning trees, disjoint set ADT MW 9.5, 8.1-8.3 |
November 26 |
Weighted union, path compression MW 8.4-8.5 |
December 1 | Analysis of Kruskal's algorithm |
December 3 |
Correctness of Kruskal's algorithm; NP-complete problems MW 9.7 |
December 5 | NP-completeness |