A friendly, fully-illustrated introduction to the most important computer programming algorithms. The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. This book will prepare you for those pesky algorithms questions in every programming job interview and help you apply them in your day-to-day work. And if you want to understand them without slogging through dense multipage proofs, this is the book for you. 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 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 new edition now includes fresh coverage of trees, NP complete problems, and code updates to Python 3. With easy-to-read, friendly explanations, clever examples, and exercises to sharpen your skills as you learn, you’ll actually enjoy learning these important algorithms. About the book Grokking Algorithms, Second Edition makes it easy to learn. You’ll never be bored—complex concepts are all explained through fun cartoons and memorable examples that make them stick. You'll start with tasks like sorting and searching, then build your skills to tackle more advanced problems like data compression and artificial intelligence. 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. By the time you reach the last page, you’ll have mastered the most widely applicable algorithms, know when and how to use them, and be fully prepared when you’re asked about them on your next job interview. About the reader Suitable for self-taught programmers, engineers, job seekers, or anyone who wants to brush up on algorithms. 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.
Daniel Zingaro Book order



- 2024
- 2024
This hands-on, problem-based introduction focuses on building algorithms and data structures for solving computer problems. Programming involves using a computer to tackle challenges, with algorithms serving as the sequences of steps to find solutions. Unlike many texts that present algorithms in isolation, this approach integrates explanations, examples, and arguments to connect learning with practical application, avoiding formal mathematics that can hinder understanding. Readers learn to select appropriate algorithms and data structures by engaging with real-world problems from international programming competitions, such as determining the uniqueness of snowflakes, optimizing game strategies, and navigating efficiently. The book covers complex topics like recursion, dynamic programming, graphs, greedy algorithms, heaps, hash tables, and segment trees, all essential for effective data handling. Code is provided in C, the standard language for competitions, with thorough explanations throughout. Additionally, the author demonstrates how various problems can be translated into graph algorithms. By the conclusion, readers will grasp the significance of modeling, the importance of methodical problem-solving, and the advantages of organizing data with suitable structures.
- 2021
Learn to Code by Solving Problems
- 336 pages
- 12 hours of reading
"Teaches readers how to use Python to solve short, situational competitive programming problems. Each chapter requires the reader to learn a new feature or function of Python in order to solve a problem, while emphasizing basic programming concepts, problem-solving strategies, and critical thinking skills"-- Provided by publisher