Bewertung:

Die Rezensionen zu diesem Buch zeigen eine Mischung aus nützlichen Inhalten und erheblichen Problemen. Während einige Leser den gründlichen Überblick über Algorithmen und Datenstrukturen schätzen, insbesondere für fortgeschrittene Programmierer, kritisieren andere das Buch heftig wegen zahlreicher Tippfehler, schlechter Formatierung und mangelnder Einhaltung moderner C++-Standards.
Vorteile:⬤ Gute Informationen über bekannte Algorithmus-Paradigmen und Datenstrukturen
⬤ klare Erklärungen komplexer Themen
⬤ interessante Übungen mit Schritt-für-Schritt-Beschreibungen
⬤ geeignet für fortgeschrittene Programmierer
⬤ verständliche Sprache im Vergleich zu technischer Dokumentation.
⬤ Durchsetzt mit Tippfehlern und Formatierungsproblemen in Codeausschnitten
⬤ enthält nicht-idiomatischen C++11-Code
⬤ enthält schlechte Programmierpraktiken wie globale Variablen
⬤ nicht für Anfänger geeignet
⬤ von einigen aufgrund der vielen Fehler als Geldverschwendung angesehen.
(basierend auf 4 Leserbewertungen)
C++ Data Structures and Algorithm Design Principles
Erforschen Sie Datenstrukturen wie Arrays, Stacks und Graphen anhand von Beispielen aus der Praxis. Untersuchen Sie die Kompromisse zwischen Algorithmen und Datenstrukturen und finden Sie heraus, was funktioniert und was nicht. Entdecken Sie, wie Techniken wie Bloom-Filter und Multiway-Heaps reale Anwendungen verbessern.
C++ ist eine ausgereifte Multi-Paradigma-Programmiersprache, die es Ihnen ermöglicht, High-Level-Code mit einem hohen Maß an Kontrolle über die Hardware zu schreiben. Heutzutage sind wesentliche Teile der Software-Infrastruktur, einschließlich Datenbanken, Browsern, Multimedia-Frameworks und GUI-Toolkits, in C++ geschrieben.
Dieses Buch beginnt mit einer Einführung in die C++-Datenstrukturen und in die Speicherung von Daten mit Hilfe von verknüpften Listen, Arrays, Stacks und Warteschlangen. In späteren Kapiteln werden die grundlegenden Paradigmen für den Entwurf von Algorithmen erläutert, wie z. B. der Greedy-Ansatz und der Divide-and-Conquer-Ansatz, die zur Lösung einer Vielzahl von Berechnungsproblemen verwendet werden. Schließlich lernen Sie die fortgeschrittene Technik der dynamischen Programmierung kennen, um optimierte Implementierungen verschiedener im Buch behandelter Algorithmen zu entwickeln.
Am Ende dieses Buches werden Sie gelernt haben, wie man Standarddatenstrukturen und -algorithmen in effizientem und skalierbarem C++ 14-Code implementiert. Was Sie lernen werden Erstellen von Anwendungen unter Verwendung von Hash-Tabellen, Dictionaries und Sets Untersuchen Sie, wie sich moderne Hardware auf die tatsächliche Laufzeitleistung von Programmen auswirkt Wenden Sie gängige Algorithmen wie Heapsort und Merge Sort für String-Datentypen an Verwenden Sie die C++-Template-Metaprogrammierung zum Schreiben von Code-Bibliotheken Implementieren Sie einen URL-Verkürzungsdienst unter Verwendung eines Bloom-Filters Verwenden Sie geeignete moderne C++-Idiome wie std:: array anstelle von Arrays im C-Stil Für wen dieses Buch gedacht ist
Dieses Buch richtet sich an Entwickler oder Studenten, die sich mit grundlegenden Datenstrukturen und Algorithmenentwurfstechniken vertraut machen wollen. Obwohl keine mathematischen Vorkenntnisse erforderlich sind, werden Grundkenntnisse über Komplexitätsklassen und die Big-O-Notation sowie eine Qualifikation in einem Algorithmenkurs Ihnen helfen, das Beste aus diesem Buch herauszuholen. Vertrautheit mit dem C++ 14 Standard wird vorausgesetzt. Inhaltsverzeichnis Listen, Stapel und Warteschlangen Bäume, Heaps und Graphen Hashtabellen und Bloom-Filter Teilen und Erobern Gierige Algorithmen Graphenalgorithmen I Graphenalgorithmen II Dynamische Programmierung I Dynamische Programmierung II