This book provides a thorough introduction to the primary techniques used in the mathematical analysis of algorithms. The authors draw from classical mathematical material, including discrete mathematics, elementary real analysis, and combinatories, as well as from classical computer science material, including algorithms and data structures. They focus on "average-case" or "probabilistic" analysis, although they also cover the basic mathematical tools required for "worst-case" or "complexity" analysis. Topics include recurrences, generating functions, asymptotics, trees, strings, maps, and an analysis of sorting, tree search, string search, and hashing algorithms.
An interesting topic and method in analysis of algorithms. But a lot of typos in the book, some of them even very serious. So make sure to check the errata first before you read a new chapter.