Advertisement

Einführung

  • Ralf Hartmut Güting
  • Stefan Dieker
Chapter
  • 197 Downloads
Part of the Leitfäden der Informatik book series (XLINF)

Zusammenfassung

Algorithmen und Datenstrukturen sind Thema dieses Buches. Algorithmen arbeiten auf Datenstrukturen und Datenstrukturen enthalten Algorithmen als Komponenten; insofern sind beide untrennbar miteinander verknüpft. In der Einleitung wollen wir diese Begriffe etwas beleuchten und sie einordnen in eine “Umgebung” eng damit zusammenhängender Konzepte wie Funktion, Prozedur, Abstrakter Datentyp, Datentyp, Algebra, Typ (in einer Programmiersprache), Klasse und Modul.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Literaturhinweise

  1. Zu Algorithmen und Datenstrukturen gibt es eine Fülle guter Bücher, von denen nur einige erwähnt werden können. Hervorheben wollen wir das Buch von Aho, Hopcroft und Ullman [1983], das den Aufbau und die Darstellung in diesem Buch besonders beeinflußt hat. Wichtige “Klassiker” sind [Knuth 1998], [Aho 1974] und Wirth [2000, 1996] (die ersten Auflagen von Knuth und Wirth sind 1973 bzw. 1975 erschienen). Ein hervorragendes deutsches Buch ist [Ottmann und Widmayer 2002]. Weitere gute Darstellungen finden sich in [Mehlhom 1984a–c], [Horowitz, Sahni und Anderson-Freed 1993], [Sedgewick 2002a, 2002b] und [Wood 1993]. Manber [1989] betont den kreativen Prozess bei der Entwicklung von Algorithmen, beschreibt also nicht nur das Endergebnis. Gönnet und Baeza-Yates [1991] stellen eine große Fülle von Algorithmen und Datenstrukturen jeweils knapp dar, bieten also so etwas wie einen “Katalog”. Die Analyse von Algorithmen wird besonders betont bei Baase und Van Gelder [2000] und Banachowski. [1991]. Nievergelt und Hinrichs [1993] bieten eine originelle Darstellung mit vielen Querverbindungen und Themen, die man sonst in Büchern zu Algorithmen und Datenstrukturen nicht findet, u. a. zu Computergraphik, geometrischen Algorithmen und externen Datenstrukturen.Google Scholar
  2. Einige Bücher zu Datenstrukturen haben Versionen in einer ganzen Reihe von Programmiersprachen, etwa in PASCAL, C, C++ oder Java, so z.B. Sedgewick [2002a, 2002b], Standish [1998] oder Weiss [ 1998 ].Google Scholar
  3. Die bei uns für die Ausformulierung konkreter Programme verwendete Sprache Java ist z.B. in [Flanagan 2000] beschrieben.Google Scholar
  4. Eine ausgezeichnete Darstellung mathematischer Grundlagen und Techniken für die Analyse von Algorithmen bietet das Buch von Graham, Knuth und Patashnik [ 1994 ]. Wir empfehlen es besonders als Begleitlektüre. Unser Material zu mathematischen Grundlagen im Anhang kann man dort, natürlich wesentlich vertieft, wiederfinden.Google Scholar
  5. Eine gründliche Einführung in die Theorie und Praxis der Analyse von Algorithmen mit einer Darstellung möglicher Maschinenmodelle wie der RAM findet sich bei [Aho 1974 ]. “Registermaschinen” werden auch bei Albert und Ottmann [1990] diskutiert; das Konzept stammt aus einer Arbeit von Sheperdson und Sturgis [1963]. Die “real RAM” wird bei Preparata und Shamos [1985] beschrieben.Google Scholar
  6. Abstrakte Datentypen und algebraische Spezifikation werden in den Büchern von Ehrich. [1989] und Klaeren [1983] eingehend behandelt. Die von uns verwendete Spezifikationsmethode (direkte Beschreibung einer Algebra mit allgemeiner mathematischer Notation) wird dort als “exemplarische applikative Spezifikation” bzw. als “denotationelle Spezifikation” bezeichnet und in einführenden Kapiteln kurz erwähnt; die Bücher konzentrieren sich dann auf die formale Behandlung abstrakter Datentypen. Auch Loeckx [1996] bieten eine umfassende Darstellung des Gebietes; der Zusammenhang zwischen Signatur, mehrsortiger Algebra und abstraktem Datentyp wird dort in Kapitel 2 beschrieben. Eine gute Einführung zu diesem Thema findet sich auch bei Bauer und Wössner [1984]. Ein Buch zu Datenstrukturen, in dem algebraische Spezifikation für einige grundlegende Datentypen durchgeführt wird, ist [Horowitz 1993]. Auch Sedgewick [2002a, 2002b] betont abstrakte Datentypen und zeigt die Verbindung zu objekt-orientierter Progranmiierung, also Klassen in C++. Wood [1993] arbeitet systematisch mit abstrakten Datentypen, wobei jeweils die Signatur angegeben und die Semantik der Operationen möglichst präzise umgangssprachUch beschrieben wird.Google Scholar

Copyright information

© B. G. Teubner Verlag / GWV Fachverlage GmbH, Wiesbaden 2004

Authors and Affiliations

  • Ralf Hartmut Güting
    • 1
  • Stefan Dieker
    • 1
  1. 1.HagenDeutschland

Personalised recommendations