## Course Outline for CompSci 161

( * indicates topic to be discussed only if time allows,     week indications are approximate)

 Introduction [CLR 1-3, 6.1-6.3 and Append.A,B,C;   B 1, 3] 1 Course requirements, induction proofs [B 3.4] Complexity and asymptotics [CLR 3;   B 1.4;   GT 1.2] Models of computation Examples of algorithm analysis Searching, sorting, lower bounds [CLR 6, 8;   B 4-5] 2 Searching - sequential, binary, interpolation [B 1.6] Insertion sorts - straight, binary, Shellsort [B 4.2, 4.10] Lower bounds on sorting - inversions, travel, decision [CLR 8.1;   B 4.7;   GT 4.4] Heapsort [CLR 6;   B 4.8] 3 Distribution sorts - bucket, lexicographic [CLR 8.3;   B 4.11;   GT 4.5] Lower bounds on selection [B 5.1-5.3, 5.5] *Review 4 .........first exam Divide-and-conquer [CLR 4, 7, 9;   B 3.6-3.7;   GT 5.2] Selection of median [CLR 9;   B 5.4] 5 DC paradigm - MaxMin Integer multiplication [GT 5.2.2] DC Theorem [CLR 4.3;   B 3.6-3.7;   GT 5.2.1] Time analysis of Mergesort, Quicksort [CLR 7;   B 4.4-4.6;   GT 4.1.1, 4.3] Strassen matrix multiplication [CLR 4.2;   B 12.3.4;   GT 5.2.3], the skyline problem Dynamic programming [CLR 15;   B 10;   GT 5.3 ] 6 Product of matrices, common subsequences [CLR 15.2-15.4;   B 10.3;   GT 5.3.1, 9.4] Optimal binary search trees [CLR 15.5;   B 10.4] 7 Nim, *Fibonacci numbers *Review .........second exam Graph algorithms [CLR 22-25;   B 7-9] 8 Minimum spanning trees - Prim, Kruskal, Boruvka, hybrid [CLR 23;   B 8;   GT 7.3.1-7.3.4] Depth-first search - components, biconnectivity [CLR 22.3;   B 7.6-7.7;   GT 6.3.1-6.3.2] 9 Transitive closure, all-pairs shortest paths [CLR 25.1-25.2;   B 9;   GT 7.2] Single-source shortest path (Dijkstra) [CLR 24.2-24.3;   B 4.3;   GT 7.1.1] Other topics Pseudo-polynomial algorithms - 0/1 knapsack dynamic pgm'ng 10 String matching - KMP algorithm [CLR 32.1, 32.4;   B 11.3;   GT 9.1.4] *Probabilistic algorithms [CLR 5.3, 31.8] *Review .........final exam (cumulative)

You are responsible for having read CLR 1-10, 15, 22-25.2, 32.4
You are strongly urged to read Baase 1-4, 5.1-5.2, 6.2, 8.1-8.3

### References

CLR
Cormen, Leiserson, Rivest, and Stein Introduction to Algorithms (3rd ed.), MIT Press, 2009.
B
Baase, Van Gelder Computer Algorithms (3rd ed.), Addison-Wesley, 2000.
GT
Goodrich and Tamassia, Algorithm Design, John Wiley, 2002.