This book evolved over the past ten years from a set of lecture notes developed by the authors while teaching the undergraduate Algorithms course at Berkeley and U.C. San Diego. Instead of dwelling on formal proofs, this book distills in each case the crisp mathematical idea that makes the algorithm work. In other words, this book emphasizes rigor over formalism. Undergraduate students in Compu…