Robert Sedgewick: Algorithmen

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


7. Implementation von Algorithmen



Wie in
Kapitel 1 erwähnt wurde, konzentrieren wir uns in diesem Buch auf die Algorithmen selbst; jedesmal, wenn wir einen Algorithmus betrachten, behandeln wir ihn, als wäre seine Leistungsfähigkeit der entscheidende Faktor für die erfolgreiche Erfüllung einer umfangreicheren Aufgabe. Dieser Standpunkt ist zum einen gerechtfertigt, weil solche Situationen für jeden Algorithmus eintreten können, zum anderen, weil die Sorgfalt, die wir aufwenden, um einen effizienten Lösungsweg für ein Problem zu finden, auch oft zu einem eleganteren (und effizienteren) Algorithmus führt. Natürlich ist dieser enge Blickwinkel recht unrealistisch, da es viele andere, sehr reale Faktoren gibt, die berücksichtigt werden müssen, wenn man ein kompliziertes Problem mit Hilfe eines Computers löst. Im vorliegenden Kapitel betrachten wir Fragen, die mit dem Ziel zusammenhängen, die von uns beschriebenen sehr idealisierten Algorithmen für praktische Anwendungen nutzbar zu machen.

Letzten Endes sind die Eigenschaften des Algorithmus nur eine Seite der Medaille; ein Computer kann nur dann effizient für die Lösung eines Problems eingesetzt werden, wenn das Problem selbst richtig erfaßt worden ist. Eine eingehende Betrachtung der Eigenschaften von Anwendungen würde über den Rahmen dieses Buches hinausgehen; unsere Absicht ist es vielmehr, so viele Informationen über grundlegende Algorithmen zu vermitteln, daß man sinnvolle Entscheidungen hinsichtlich ihrer Anwendung treffen kann. Die meisten Algorithmen, die wir behandeln, erwiesen sich für eine Vielzahl von Anwendungen als nützlich. Die Reihe von Algorithmen, die für die Lösung vielfältiger Probleme zur Verfügung steht, entspricht der Reihe der Anforderungen, die sich aus verschiedenen Anwendungsgebieten ergeben. Es gibt keinen »besten« Suchalgorithmus (um ein Beispiel zu wählen); ein Verfahren könnte für die Anwendung im Reservierungssystem einer Luftverkehrsgesellschaft gut geeignet sein, ein anderes könnte für die Benutzung in der inneren Schleife eines Dekodierungsprogramms von Nutzen sein.

Algorithmen existieren selten in einem Vakuum, außer vielleicht in den Köpfen von theoretischen Algorithmen-Entwicklern, die Verfahren entwickeln, ohne eventuellen Implementationen irgendwelche Beachtung zu schenken, oder in den Köpfen von Programmierern, die zur Lösung wohlbekannter und verstandener Probleme irgendwelche adhoc-Methoden implementieren. Zur ordnungsgemäßen Entwicklung von Algorithmen gehört, daß man sich auch über die potentiellen Auswirkungen von bei der Entwicklung getroffenen Entscheidungen auf Implementationen Gedanken macht, und zur ordnungsgemäßen Erstellung von Anwendungsprogrammen gehört, daß man sich über die Leistungseigenschaften der zur Anwendung kommenden grundlegenden Verfahren Gedanken macht.


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