By Jeff Erickson
This pdf book contains senior-level algorithms for computer engineering students. They are
- Notes on solving recurrences
- Introduction
- Divide and conquer
- Dynamic programming
- Randomization: Nuts and bolts
- Randomized treaps
- Randomized mincut
- Uniform and universal hashing
- Skip lists
- Amortized analysis
- Scapegoat trees and splay trees
- Union-find
- Fibonacci heaps
- Graph algorithms
- Representing and searching graphs
- Single-source shortest paths
- All-pairs shortest paths
- Minimum spanning trees
- Seminumerical algorithms
- Fast Fourier transforms
- Number-theoretic algorithms
- String matching
- String matching: Rabin-Karp
- String matching: Knuth-Morris-Pratt
- Computational Geometry
- Convex hulls
- Plane sweep algorithms
- Polygon triangulation
- Lower bounds
- Information theory
- Adversary arguments
- Reductions and transformations
- NP-hard, NP-easy, and NP-complete problems