This book provides an easy-to-read introduction to computer algorithms. It describes a number of important classical algorithms and tells when each is appropriate. It explains how to analyze algorithms to understand their behavior. Most importantly it teaches techniques that the reader can use to create new algorithms to meet future needs