Gerichtet an jeden ernsthaften Programmierer oder Informatikstudenten, baut die neue zweite Auflage von Einführung in Algorithmen auf der Tradition des Originals auf und bietet einen wahrhaft meisterhaften Leitfaden zur Welt der Algorithmen. Deutlich präsentiert, mathematisch rigoros und dennoch zugänglich, selbst für diejenigen, die mit Mathematik Schwierigkeiten haben, setzt dieser Titel einen hohen Standard für ein Lehrbuch und als Referenz zu den besten Algorithmen zur Lösung einer Vielzahl von Computerproblemen.
Mit Beispielfragen und mathematischen Beweisen, die die Richtigkeit jedes Algorithmus demonstrieren, ist dieses Buch ideal als Lehrbuch für den Unterricht, aber sein Einfluss endet dort nicht. Die Autoren leisten hervorragende Arbeit dabei, jeden Algorithmus zu erklären. (Referenzabschnitte zu grundlegenden mathematischen Notationen helfen den Lesern, die Lücke zu überbrücken, aber es ist hilfreich, einen gewissen Mathematikhintergrund zu haben, um die gesamte Leistung dieses ansprechenden Hardcover-Bandes zu schätzen.) Jeder Algorithmus wird in Pseudocode präsentiert, der in jeder Programmiersprache implementiert werden kann, einschließlich C/C++ und Java. Dieser ökumenische Ansatz ist eine der Stärken des Buches. Wenn es um Sortierung und gängige Datenstrukturen geht, von einfachen verketteten Listen bis hin zu Bäumen (einschließlich binärer Bäume, Rot-Schwarz- und B-Bäume), glänzt dieser Titel wirklich mit klaren Diagrammen, die Algorithmen in Aktion zeigen. Selbst wenn Sie über die mathematische Notation hier hinwegsehen, können Sie definitiv auf andere Weise von diesem Text profitieren.
Das Buch geht weiter mit fortgeschritteneren Algorithmen, die Strategien zur Lösung komplizierterer Probleme implementieren (einschließlich dynamischer Programmiertechniken, gieriger Algorithmen und amortisierter Analyse). Algorithmen für Graphenprobleme (die in realen Geschäftsproblemen wie der Optimierung von Flugplänen oder dem Fluss durch Pipelines verwendet werden) kommen als nächstes. In jedem Fall bieten die Autoren das Beste aus der aktuellen Forschung zu jedem Thema sowie Beispiel-Lösungen.
Dieser Text schließt mit einer Sammlung nützlicher Algorithmen, einschließlich Matrizenoperationen und linearer Programmierung, der Auswertung von Polynomen und der bekannten schnellen Fourier-Transformation (FFT) (nützlich in der Signalverarbeitung und im Ingenieurwesen). Die letzten Abschnitte zu 'NP-vollständigen' Problemen, wie dem bekannten Problem des Handelsreisenden, zeigen, dass, während nicht alle Probleme eine nachweislich endgültige und beste Antwort haben, Algorithmen, die akzeptable annähernde Lösungen generieren, dennoch verwendet werden können, um nützliche, reale Antworten zu generieren.
Im gesamten Text verankern die Autoren ihre Diskussion über Algorithmen mit aktuellen Beispielen aus der Molekularbiologie (wie dem Human Genome Project), aus der Wirtschaft und dem Ingenieurwesen. Jeder Abschnitt endet mit kurzen Diskussionen zu verwandtem historischem Material, oft mit der Diskussion ursprünglicher Forschung in jedem Bereich der Algorithmen. Insgesamt argumentieren sie erfolgreich, dass Algorithmen eine 'Technologie' sind, genau wie Hardware und Software, die verwendet werden kann, um bessere Software zu schreiben, die mehr mit besserer Leistung macht. Neben klassischen Büchern über Algorithmen (wie Donald Knuths dreibändigem Werk, Die Kunst des Programmierens) setzt dieser Titel einen neuen Standard für die Zusammenstellung der besten Forschung zu Algorithmen. Für jeden erfahrenen Entwickler, unabhängig von seiner gewählten Sprache, verdient dieser Text eine genauere Betrachtung, um das Spektrum und die Leistung realer Software zu erweitern.
Richard Dragan