This free classic text provides the perfect introduction to the tools of algorithmic design and analysis, concentrating on basic principles and illustrating them with well-chosen paradigms. An algorithm is a method for solving a class of problems on a computer.

**Description**

The complexity of an algorithm is the cost, measured in running time, or storage, or whatever units are relevant, of using the algorithm to solve one of those problems. This book is about algorithms and complexity, and so it is about methods for solving problems on computers and the costs (usually the running time) of using those methods.

**Contents**

- Mathematical Preliminaries
- Recursive Algorithms
- The Network Flow Problem
- Algorithms in the Theory of Numbers
- NP-completeness

**Book Details**