- Search, sort, and graph algorithms
- Data structures such as arrays, lists, hash tables, trees, and graphs
- NP-complete and greedy algorithms
- Performance trade-offs between algorithms
- Exercises and code samples in every chapter
- Over 400 illustrations with detailed walkthroughs
The first edition of Grokking Algorithms proved to over 100,000 readers that learning algorithms doesn't have to be complicated or boring! This revised second edition contains brand new coverage of trees, including binary search trees, balanced trees, B-trees and more. You'll also discover fresh insights on data structure performance that takes account of modern CPUs. Plus, the book's fully annotated code samples have been updated to Python 3. Foreword by Daniel Zingaro. Purchase of the print book includes a free eBook in PDF and ePub formats from Manning Publications. About the technology The algorithms you use most often have already been discovered, tested, and proven. Grokking Algorithms, Second Edition makes it a breeze to learn, understand, and use them. With beautifully simple explanations, over 400 fun illustrations, and dozens of relevant examples, it's the perfect way to unlock the power of algorithms in your everyday work and prepare for your next coding interview--no math required! About the book Grokking Algorithms, Second Edition teaches you important algorithms to speed up your programs, simplify your code, and solve common programming problems. Start with tasks like sorting and searching, then build your skills to tackle advanced problems like data compression and artificial intelligence. You'll even learn to compare the performance tradeoffs between algorithms. Plus, this new edition includes fresh coverage of trees, NP-complete problems, and code updates to Python 3. What's inside
- Search, sort, and graph algorithms
- Data structures such as arrays, lists, hash tables, trees, and graphs
- NP-complete and greedy algorithms
- Exercises and code samples in every chapter
2 Selection sort
3 Recursion
4 Quicksort
5 Hash tables
6 Beadth-first search
7 Trees
8 Balanced trees
9 Dijkstra's algorithm
10 Greedy algorithms
11 Dynamic programming
12 k-nearest neighbors
13 where to go next