Foren » Bücher

Algorithmen in C++

    • Moderator
    • 6 Beiträge
    16. August 2011 10:53:21 CEST

    Algorithmen in C++ Teil 1-4
    Robert Sedgewick
    Erscheinungsdatum: 3. Auflage, Juli 2002
    ISBN-10: 3-8273-7026-4
    ISBN-13: 978-3-8273-7026-6
    Preis: EUR 49,95
    Verlag: Addison-Wesley (Deutschland)

    Englische Originalausgabe: Robert Sedgewick: Algorithms; Addison-Wesley (1991); ISBN 3-89319-402-9

    748 Seiten


    Das Lehrbuch „Algorithmen in C++ Teil 1-4“ in der dritten Auflage von Robert Sedgewick erschlägt den interessierten Leser zunächst mit vielen Seiten, auf denen noch viel mehr Text steht. Trotz - oder gerade wegen - des großen Umfangs, den der Inhalt auch rechtfertigt, ist dieses Buch in sehr gut verständlicher Sprache geschrieben und super strukturiert. Weitere Merkmale sind die scheinbar endlosen Übungsaufgaben, die über das gesamte Buch verteilt sind, sowie viele Angaben von Referenzwerken zur Vertiefung.

    So beginnt das Buch mit einer Übersicht zum Inhalt und der Struktur des Buches, sowie einigen Anmerkungen zum Arbeiten mit dem Buch. Es folgt eine super Einführung dazu, was Algorithmen sind und es wird Schritt für Schritt eher unmathematisch, und stattdessen Anhand der Implementierung veranschaulicht, ein immer effektiverer Algorithmus für das Vernetzungsproblem entwickelt. Als nächstes bietet das Buch eine Einführung in die Algorithmenanalyse. Dieser Teil erfordert deutlich mehr Konzentration als der Erste und ist deutlich abstrakter und mathematischer. Durch die vielen veranschaulichenden Beispiele ist aber auch dieser Teil mit etwas Willen nachvollziehbar und recht interessant. Wirklich los geht es dann in Kapitel 3 mit Datenstrukturen. Hier werden sehr verständlich und anschaulich unterschiedliche Datenstrukturen und Algorithmen für Operationen mit diesen Datenstrukturen vorgestellt. Es folgen in den nächsten zwei Kapiteln abstrakte Datentypen und Rekursion und Bäume, so dass man im Anschluß das Wissen mitbringt, das für den dritten Teil des Buches benötigt wird. Hier werden nun ausführlich und anhand sehr vieler Abbildungen veranschaulicht unterschiedliche Sortierverfahren vorgestellt. Zunächst ganz elementare Vorgehensweisen, auf denen dann im nächsten Abschnitt Quicksort aufbaut. Vorgestellt werden unter anderem aber auch Heapsort, Radixsort und Mergesort, sodass man im Anschluß an dieses Kapitel eine gute Übersicht über verschiedenste Sortieralgorithmen besitzt und auch genug Verständnis für diese, um sie effektiv zu nutzen. Der vierte und letzte Teil des Buchs beschäftigt sich dann mit Suchalgorithmen. Auch hier werden wieder viele verschiedene vorgestellt.

    Insgesamt ist mir der Teil des Buchs zur Algorithmenanalyse am schwersten gefallen, da dieser einfach recht Mathematisch ist, was mir jedenfalls sehr viel Konzentration abverlangt, die ich nach der Schule nur mit viel Mühe aufbringen kann. Die anderen Teile sind häufig sogar eher leicht verständlich, ziehen sich aber manchmal etwas in die Länge und haben auch Stellen, bei denen mir das Nachvollziehen etwas schwer fiel, was aber durch die übersichtlichen C++ Implementierungen der vorgestellten Algorithmen ausgeglichen wurde. Denn häufig hat mir ein Blick auf die Implementierung das Verstehen leichter gemacht, als der erklärende Text. Die Geschwindigkeit der vorgestellten Algorithmen wird weniger mathematisch analysiert, als mit Hilfe vieler guter Abbildungen super nachvollziehbar begründet.

    Die Aufgaben bieten immer wieder gute Möglichkeiten, das neu erlernte Wissen zu überprüfen. Da deren Schwierigkeit von sehr einfach bis extrem schwer reicht, bieten diese auch immer wieder die Möglichkeit zur Motivation, einen Abschnitt erneut zu lesen und noch besser zu verinnerlichen, zeigen aber auch immer wieder, dass man noch sehr viel dazu lernen kann.

    Sehr praktisch ist auch das sehr vollständige Register, das dieses Buch auch zu einem guten Nachschlagewerk macht.

    Abschließend möchte ich noch anmerken, dass dieses Buch sehr zeitaufwändig und zwar durchaus praxisnah, aber durch die große Breite dann doch auch mal zweifel daran aufkommen lässt, ob die vielen Hintergründe nun wirklich nötig sind. Es handelt sich also um alles andere als eine kurze Einführung in Algorithmen, sondern um ein Umfangreiches Lehrbuch, das Teils viel Selbstdisziplin vom Leser verlangt und diesem dann aber natürlich noch immer nicht mehr als einen groben Überblick zur Thematik vermittelt.