This book presents the five main principles of algorithm design: divide and conquer, greedy algorithms, thinning, dynamic programming, and exhaustive search. It serves students, teachers, researchers, and professionals who want to know more about what goes into a good algorithm and how such algorithms can be expressed in purely functional terms.
Ideal for learning or reference, this book explains the five main principles of algorithm design and their implementation in Haskell.