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
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.
Visuelle Erläuterungen mit über 400 Bildern und zahlreichen Übungen machen das Lernen von Algorithmen unterhaltsam und verständlich. Dieses Buch bietet eine anschauliche Einführung in die wichtigsten Algorithmen, die du in der Programmierung täglich benötigst. Du beginnst mit grundlegenden Aufgaben wie Sortieren und Suchen und bist damit gut gerüstet, um komplexere Themen wie dynamische Programmierung und Künstliche Intelligenz zu erkunden. Der Autor erklärt die Funktionsweise der Algorithmen anhand einfacher Beispiele, wie dem Unterschied zwischen Arrays und verketteten Listen, um das Finden freier Plätze in einem Kinosaal zu verdeutlichen. Solche praktischen Beispiele zeigen, wie und wofür die Algorithmen effektiv eingesetzt werden können. Zu den Erläuterungen gibt es anschauliche Bilder, Diagramme und ausführlich kommentierten Beispielcode in Python. Wenn du Algorithmen verstehen möchtest, ohne dich mit komplizierten Beweisen abmühen zu müssen, ist dieses Buch ideal. Die Themen umfassen Such-, Sortier- und Graphenalgorithmen, Performance-Analyse (Landau-Notation), Arrays, verkettete Listen, Rekursion, Quicksort, Dijkstra-Algorithmus, Approximationsalgorithmen, Greedy-Algorithmen und dynamische Programmierung sowie Klassifikation und Regression mit dem k-Nächste-Nachbarn-Algorithmus.