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 28 |
Dictionary ADT; implementations by unsorted and sorted arrays and linked lists; MW 4.1-4.3 |
October 1 |
Quicksort implemented recursively and using a stack MW 3.6 Quicksort handout |
October 3 | Dictionary implementation by binary search trees |
October 5 |
AVL trees: height, lookUp MW 4.4 |
October 8 | AVL insert |
October 10 | AVL remove, running time |
October 12 |
Splay trees MW 4.5 |
October 15 |
Hashing MW 5.1-5.4 |
October 17 |
Rehashing MW 5.5 |
October 19 |
Universal hashing MW 5.8 |
October 22 |
Mergesort MW 7.6 |
October 24 |
Graphs MW 9.1 |
October 26 |
Topological sort MW 9.2 |
October 29 |
Breadth-first search MW 9.3.1 |
October 31 |
Intro to parallelism DG 2 |
November 5 |
Fork-Join programs DG 3 |
November 7 |
Analyzing parallel programs DG 4 |
November 9 |
Parallel prefix DG 5 |
November 14 | Parallel quicksort, mergesort |
November 16 |
Concurrency and locks DG 6 |
November 19 |
Priority queues: heap insert MW 6.1-6.3 |
November 21 |
Heap deleteMin, buildHeap, heapsort MW 7.5 |
November 26 |
Analysis of buildHeap; least cost paths in graphs MW 9.3.2 |
November 28 | Analysis of Dijkstra's algorithm |
November 30 |
Minimum spanning trees, disjoint set ADT MW 9.5, 8.1-8.3 |
December 3 |
Weighted union, path compression MW 8.4-8.5 |
December 5 | Kruskal's algorithm |
December 7 |
NP-completeness MW 9.7 |