CISC621 Algorithms, final exam review sheet, 2015 Fall
-
Final exam question types much like midterm
- fewer multiple choice, more short answer such as
-
Give the definition of NP completeness.
-
What is the expected runtime of QuickSelect?
- Here is a question that will be on the test:
Choose one of the following problems and show that it is NP complete. <list of problems>.
more or less complete topics list
- Not covered: Bipartite matching, section (26.3)
- Not covered: Halting problem
- Not covered: Linear algebra reductions
- Covered:
Convex hull: Graham scan and (package wrapping), section (33.3)
-
Covered: Network flow: Ford-Fulkerson algorithm, max-flow min-cut theorem (26.2)
- Covered: NP-Completeness proofs (CH 34). (→ denotes polytime reduction)
- 3-SAT → CLIQUE
- CLIQUE → VERTEX-COVER
-
VERTEX-COVER → HAM-CYCLE.
Not Covered in detail but you should be able to state in very general terms how it works, how it uses widgets:
- HAM-CYCLE → TSP
- 3-SAT → SubsetSum
- SubsetSum → Partition
- Covered: definitions of P, NP, NP completeness
- Covered: Cook's Theorem (34.7) general idea how it works, what it says.
- Covered Definitions of Decision problems, languages, and Poly time reductions
- Covered: All pairs shortest paths in graphs (Ch 25.1,2)
- Covered: FFT polynomial multiplication (Ch 30)
-
Covered: Topological Sort, Strongly connected components (Ch 22)
- Dynamic programming, eg. longest increasing subsequence.
First half of course, covered less intensely
- Prim's MST algorithm.(Ch 23)
- Kruskal's MST algorithm (Ch 23)
- Breadth and Depth first search (Ch 22)
- Dynamic Sets, Union-Find (ch 21.4) with union by weight and with path compression
- Graph notation, representation, paths, spanning trees, digraphs, weighted graphs. (Ch 22, 23.1)
- Binomial Heaps, reference: CLRS Problem 19.2
- Binary Search trees (Ch 12)
- Red-Black trees, (Sedgewick notes and Ch 13)
- hash functions,Application to string matching, the Rabin-Karp algorithm (CLRS Section 32.2)
- Hash functions: quick, uniform, random
- Hash tables: Direct addressing: linear, quadratic and double hash probing for collision resolution.
- Dynamic arrays, Reading 17.4
- Binary heap data structure for Priority Queue.
- Sorting
- Putting it all together: IntrospectiveSort
- QuickSort
- HeapSort
- InsertionSort
- MergeSort
- Lower bound for sorting by comparison. Reading: Section 8.1
- The recursion tree method for recursions. Reading: Section 4.4
- QuickSelect
- Deterministic Median (groups of 5), Section 9.3
- block decomposition of matrices
- Strassen's algorithm for matrix multiplication.
- Karatsuba's algorithm for polynomial and integer multiplication
- substitution method for solution of recurrences
- Θ, big O, Ω
- Master Theorem