A brief undergraduate text for Algorithms.
Part A
: Divide and Conquer; Sorting and Searching
Convex Hulls: An Example
Order Analysis
Divide and Conquer
More Divide and Conquer
Finding the Median
Part B
: Greedy Algorithms and Dynamic Programming
Greedy Algorithms and Spanning Trees
Dynamic Programming
Paths, Graphs, and Search
Part C
: Data Structures
Data Structures
Skip Lists
Binary Search Trees
Heaps and Binomial / Fibonacci Heaps
Hash Tables
Disjoint Set Data Structure
Part D
: Graph Algorithms
Maximum Matchings
Algorithms on Trees
Planarity Testing
Part E
: More Algorithms
String Matching Algorithms
Randomized Algorithms
Number-Theory Algorithms
Part F
: Other Models
Parallel Sorting
Part G
: Lower Bounds and Complexity
Lower Bounds
Polynomial Time: P and NP
NP-Completeness
Approximation Algorithms
References