Algorithmen bilden das Herzstück jeder nichttrivialen Anwendung von
Computern, und die Algorithmik ist ein modernes und aktives Gebiet der
Informatik. Daher sollte sich jede Informatikerin und jeder Informatiker
mit den algorithmischen Grundwerkzeugen auskennen. Dies sind Strukturen
zur effizienten Organisation von Daten, häufig benutzte Algorithmen und
Standardtechniken für das Modellieren, Verstehen und Lösen
algorithmischer Probleme. Dieses Buch ist eine straff gehaltene
Einführung in die Welt dieser Grundwerkzeuge, gerichtet an Studierende
und im Beruf stehende Experten, die mit dem Programmieren und mit den
Grundelementen der Sprache der Mathematik vertraut sind. Die einzelnen
Kapitel behandeln Arrays und verkettete Listen, Hashtabellen und
assoziative Arrays, Sortieren und Auswählen, Prioritätswarteschlangen,
sortierte Folgen, Darstellung von Graphen, Graphdurchläufe, kürzeste
Wege, minimale Spannbäume und Optimierung. Die Algorithmen werden auf
moderne Weise präsentiert, mit explizit angegebenen Invarianten, und mit
Kommentaren zu neueren Entwicklungen wie Algorithm Engineering,
Speicherhierarchien, Algorithmenbibliotheken und zertifizierenden
Algorithmen. Die Algorithmen werden zunächst mit Hilfe von Bildern, Text
und Pseudocode erläutert; dann werden Details zu effizienten
Implementierungen gegeben, auch in Bezug auf konkrete Sprachen wie C++
und Java.