A friendly, fully-illustrated introduction to the most important computer programming algorithms.
Master the most widely used algorithms and be fully prepared when you’re asked about them at your next job interview. With beautifully simple explanations, over 400 fun illustrations, and dozens of relevant examples, you’ll actually enjoy learning about algorithms with this fun and friendly guide!
In Grokking Algorithms, Second Edition you will discover:
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 walkthroughsThe 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.
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 chapterAbout the reader
No advanced math or programming skills required.
About the author
Aditya Bhargava is a Software Engineer with a dual background in Computer Science and Fine Arts. He blogs on programming at adit.io.
Table of Contents
1 Introduction to algorithms
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