INTRODUCTION TO THE ANALYSIS OF ALGORITHMS, AN (2ND EDITION)
Besides covering the traditional algorithms of Computer Science such as Greedy, Dynamic Programming and Divide & Conquer, this edition goes further by exploring two classes of algorithms that are often overlooked: Randomised and Online algorithms -- with emphasis placed on the algorithm itself.
The coverage of both fields are timely as the ubiquity of Randomised algorithms are expressed through the emergence of cryptography while Online algorithms are essential in numerous fields as diverse as operating systems and stock market predictions.
While being relatively short to ensure the essentiality of content, a strong focus has been placed on self-containment, introducing the idea of pre/post-conditions and loop invariants to readers of all backgrounds. Containing programming exercises in Python, solutions will also be placed on the book's website.
Readership: Students of undergraduate courses in algorithms and programming.