Topics for ECS 122A
The following lists potential topics we will choose among.
- Introduction
- Recurrences
- Divide and conquer
- Quicksort
- Heapsort
- Selection
- Linear-time sorting
- Hashing (including universal hashing and perfect hashing)
- Program checking
- Binary search trees
- Splay trees
- Dynamic programming
- String compression (Huffman and LZ77 and LZ78)
- String matching (including suffix trees)
- DFS and BFS (including applications to other algorithms)
- Minimum spanning trees (Kruskal's and Prim's)
- Fibonacci heaps and their analysis
- Amortized complexity analysis
- Union/Find and its analysis
- Shortest Paths: Dijkstra's algorithm, Bellman-Ford, in DAGs, Floyd-Warshall
- Stable marriages
- Convex Hull
- Planarity testing
- NP-Completeness
- Approximation schemes
- Branch-and-bound
- Protocols