algorithm
Umschreibung schrittweiser, auf Regeln aufgebauter Problemlösung
Bücher zum Thema bei Amazon.de
Unter einem
Algorithmus (engl.
algorithm, der Name geht wahrscheinlich auf den persischen Mathematiker
Abu Ja'far Muhammad ibn Musa Al-Khwarizmi, ca. 790-840, zurück) versteht man die Umschreibung der schrittweisen Lösung eines Problems mittels einer endlichen Anzahl von Regeln.
Im Alltag begegnet man Algorithmen z.B. in Kochrezepten oder Bedienungsanleitungen.
Sobald ein Algorithmus zur Lösung eines Problems steht, lässt sich diese mit Hilfe einer mathematischen
Rechenmaschine realisieren.
Beim
Programmieren wird ein Algorithmus meist in
Pseudocode formuliert, der eine recht einfache Übersetzung in eine bestimmte
Programmiersprache erlaubt.
Meist wird ein Algorithmus bei seiner Veröffentlichung bewertet, dies sagt aus, wie gut er ein bestimmtes Problem löst. Theoretisch gibt es zu jedem (lösbaren) Problem unendlich viele Algorithmen, die es lösen.
Zur Bewertung wird die sogenannte
O-Notation verwendet. Dabei wird in Abhängigkeit der Problemgröße (z.B. die Anzahl der
Datensätze, die verarbeitet werden müssen, meistens als
n bezeichnet) die sehr ungefähre Anzahl der Schritte (entspricht in etwa der Zeit) angegeben. Diese Angabe dient nur der Größenzuordnung, damit nicht etwa durch einen doppelt so schnellen
Prozessor die Bewertung ungültig wird.
Häufige
Notationen (in aufsteigender Geschwindigkeit) sind:
- O(1) (unabhängig von der Problemgröße lässt sich das Problem in konstanter Zeit lösen),
- O(log n) (es muss nur ein Bruchteil der Daten zur Lösung verwendet werden, oft durch eine geeignete
Datenstruktur),
- O(n) (der Algorithmen muss alle Daten durchgehen - ob ein mal oder 50 mal ist irrelevant),
- O(n log n) (es muss für jeden Datensatz nur ein Bruchteil der Daten wiederum durchgegangen werden),
- O(n2) (für jeden Datensatz muss der gesamte Datenbestand durchgegangen werden).