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.
Daniel Zingaro Reihenfolge der Bücher (Chronologisch)



Grokking Algorithms
- 256 Seiten
- 9 Lesestunden
Grokking Algorithms is a friendly take on this core computer science topic. In it, you'll learn how to apply common algorithms to the practical programming problems you face every day. You'll start with tasks like sorting and searching. As you build up your skills, you'll tackle more complex problems like data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. By the end of this book, you will have mastered widely applicable algorithms as well as how and when to use them
Learn to Code by Solving Problems
- 336 Seiten
- 12 Lesestunden
"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