Sections covered since the midterm. Sections 21.1-21.4,23-23.2,24.0,24.3,15.1,15.3,25.0,25.2,34-34.5,35.1,35.2 Topics covered 21.1-21.4 Make-Set, Union, Find-Set linked list implementation, forest of trees implementation log*(n) time complexity of a sequence of operations 23-23.2 minimum spanning tree Kruskal's algorithm, Prim's algorithm time complexity 24.0,24.3 single source shortest paths Dijkstra's algorithm time complexity 15.1,15.3 dynamic programming memoizing principle of optimality 25.0,25.2 all-pairs shortest paths problem example of dynamic programming Floyd's algorithm time complexity skip transitive closure 34-34.5 complexity classes P, NP, NP-hard, NP-complete decision problems characterizing decision problems as formal languages verification algorithms reducibility (polynomial time reducible) CIRCUIT-SAT problem RISC machine proof of NP-completeness SAT problem 3-CNF-SAT problem CLIQUE problem VERTEX-COVER problem HAM(iltonian)-CYCLE problem TSP problem SUBSET-SUM problem (we didn't go over the proof that it is NP-complete, just remember that it is NP-complete) 35.1,35.2 triangle inequality TSP problem is approximately solvable in polynomial time (if triangle inequality holds) VETEX-COVER is approximately solvable in polynomial time