CS 483
Final Review
Neat stuff:
- Time analysis
- choosing and counting representative operations
- computing for example algorithms
- O, Ω and Θ
- definitions and intuition
- proving functions in O, Ω and Θ classes from defintions
- basic theorems
- the limit theorem
- proving basic facts
- Sorting
- analysis of simple sorting algorithms (selection sort)
- analysis of sophisticated sorting algorithms (quicksort, mergesort)
- Graphs
- definitions
- traversals and spanning trees
- greedy algorithms
- minimal spanning trees
- Kruskal's algorithm and UNION-FIND
- Prim's algorithm
- shortest distances/shortest paths
- Warshall and Floyd-Warshall
- Dijkstra's algorithm
- A* algorithm
- Dynamic programming
- memoizing data
- weighted interval scheduling
- integer subset-sum problem
- optimal matrix multiplication
- Branch and bound
- P and NP
- informal definitions: IP and INP
- polynomial reduction
- decision and optimization problems
- formal definitions (sets and functions)
- encodings
- problems p:B+ -> B
- certifications c:B+ x B+ -> B
- formal definitions of P and NP
- the P = NP problem
- NP completeness
- defintion of NP-complete
- implications for P = NP broblem
- "popular" NP-complete problems
- SAT and 3-SAT
- Hamiltonian circuit problem
- knapsack problem
- travelling salesman problem
- Maximum flow
- the Ford-Fulkerson algorithm
- String matching
- the Boyer-Moore algorithm