Second edition. — O’Reilly, 2016. — 389 p. — ISBN: 978-1-4919-4892-7.
This book provides efficient code solutions in several programming languages that you can easily adapt to a specific project. Each major algorithm is presented in the style of a design pattern that includes information to help you understand why and when the algorithm is appropriate.