A quick, illustrated introduction or refresher for some common but fundamental algorithms and data structures.
The book opens with a real-life application of one of my favorite algorithms: Search for a name in a phonebook using binary search.
The next chapters talk about Big O notation (for comparing how different algorithms scale), sorting, recursion, Quicksort, the divide & conquer paradigm, why Quicksort is often faster than mergesort even though it has a worse worse case complexity (O(n^2) vs O(log n)), breath-first search, Dijkstra's algorithm plus a mention of the Bellman-Ford algorithm for when we have negative weight edges, greedy algorithms, approximation algorithms, NP-compete problems, dynamic programming, and K-nearest neighbors for classification & regression (i.e. predictions). The last chapter ("Where to go next") also mentions the Fourier transform, parallel algorithms, MapReduce, the SHA algorithms, locality-sensitive hashing (Simhash), Diffie-Hellman key exchange, linear programming, and their uses, but the reader will have to search for details elsewhere.
In between and often hand-in-hand with the above algorithms we meet some data structures. Arrays, linked lists, and hash tables are covered in enough detail and we get examples of where each one shines. We also meet stacks, queues, and sets in shorter sections. The chapter about graph algorithms shows us how to implement a graph using hash tables that point from each node to a linked list (or array) of its edges. Finally, "Where to go next" mentions trees, inverted indexes, Bloom filters, HyperLogLog, and their uses, but without detailing them.