Algorithms
This textbook, extensively class-tested over a decade at UC Berkeley and UC San Diego, explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest. Emphasis is placed on understanding the crisp mathematical idea behind each algorithm, in a manner that is intuitive and rigorous without being unduly formal.
Features include the use of boxes to strengthen the narrative: pieces that provide historical context, descriptions of how the algorithms are used in practice, and excursions for the mathematically sophisticated. Carefully chosen advanced topics can be skipped in a standard one-semester course, but can be covered in an advanced algorithms course or in a more leisurely two-semester sequence.
The book offers an accessible treatment of linear programming, introducing students to one of the greatest achievements in algorithms. An optional chapter on the quantum algorithm for factoring provides a unique peephole into this exciting topic.
The text covers a wide range of topics, from basic arithmetic and modular arithmetic to graph algorithms, greedy algorithms, dynamic programming, linear programming, and quantum algorithms. It is designed for students and practitioners who want a deep understanding of algorithmic principles.
