Robert Sedgewick: Algorithmen

[ Inhaltsverzeichnis ] [ vorhergehende Seite ] [ nächste Seite ] [ Stichwort ]


1. Grundlagen



Einführung

Das Ziel des vorliegenden Buches besteht darin, ein breites Spektrum von wichtigen und nützlichen Algorithmen zu untersuchen. Dies sind Verfahren zur Lösung von Problemen, die für eine Realisierung auf einem Computer geeignet sind. Dabei werden wir es mit recht unterschiedlichen Anwendungsgebieten zu tun haben, wobei wir stets versuchen werden, uns auf »grundlegende« Algorithmen zu konzentrieren, deren Kenntnis wichtig und deren Untersuchung interessant ist. Auf Grund der großen Zahl zu behandelnder Gebiete und Algorithmen werden wir nicht allzu viele dieser Verfahren sehr intensiv studieren können. Wir werden jedoch versuchen, uns für jeden Algorithmus angemessen Zeit zu nehmen, um seine wesentlichen Merkmale zu verstehen und seine Besonderheiten zu beachten. Kurz gesagt, unser Ziel besteht darin, eine große Anzahl der wichtigsten Algorithmen, die gegenwärtig auf Computern genutzt werden, gut genug kennenzulernen, um sie anwenden und einschätzen zu können.

Um einen Algorithmus gut kennenzulernen, muß man ihn implementieren und ausführen. Dementsprechend besteht die empfohlene Strategie für das Verständnis der in diesem Buch vorgestellten Programme darin, sie zu implementieren und zu testen, mit Varianten zu experimentieren und sie an realen Problemen auszuprobieren. Für die Diskussion und die Realisierung der meisten Algorithmen werden wir die Programmiersprache Pascal benutzen; da wir jedoch eine relativ kleine Teilmenge der Sprache verwenden, können unsere Programme leicht in viele andere moderne Programmiersprachen übersetzt werden.

Es wird davon ausgegangen, daß der Leser dieses Buches mindestens ein Jahr Erfahrung mit höheren und maschinennahen Programmiersprachen haben. Ebenso könnte eine gewisse Vertrautheit mit elementaren Algorithmen für einfache Datenstrukturen wie Felder, Stapel, Schlangen und Bäume von Nutzen sein, obwohl zu diesem Gegenstand in den Kapiteln 3 und 4 ein relativ ausführlicher Überblick gegeben wird. Elementare Kenntnisse von Rechneraufbau, Programmiersprachen und anderen Grundbegriffen der Informatik werden gleichfalls vorausgesetzt. (Wir werden solche Stoffgebiete an geeigneter Stelle kurz abhandeln, aber stets im Zusammenhang mit der Lösung spezieller Probleme.) Einige der Anwendungsgebiete, mit denen wir uns beschäftigen werden, erfordern Grundkenntnisse der elementaren Infinitesimalrechnung. Wir werden auch einige sehr elementare Dinge verwenden, bei denen lineare Algebra, Geometrie und diskrete Mathematik eine Rolle spielen, jedoch sind Vorkenntnisse auf diesen Gebieten nicht erforderlich.


[ Inhaltsverzeichnis ] [ vorhergehende Seite ] [ nächste Seite ] [ Stichwort ]