Was ist ein Algorithmus?

Was ist ein Algorithmus?

Algorithmus

Stell dir vor, deine Kollegin lobt dich und sagt: “Dein Algorithmus ist echt cool!” Das klingt nach einem großen Kompliment, oder? Aber Moment mal, hier liegt ein Missverständnis vor. Denn eigentlich meinte sie damit deinen geschriebenen Code. Aber wo genau liegt nun der Unterschied zwischen Programm und Algorithmus?

Programm vs. Algorithmus

Um es kurz zu machen: Ein Algorithmus ist die Beschreibung eines Vorgangs oder Programms, während das Programm der umgesetzte Algorithmus in Quelltext ist. Ein Beispiel: Wenn wir uns ein Brettspiel vorstellen, dann ist die schriftliche Anleitung der Algorithmus. Das eigentliche Spielen und Anwenden der Regeln ist dann das Programm.

Darstellung eines Algorithmus

Nun stellt sich die Frage, wie man einen Algorithmus darstellt. Es gibt verschiedene Möglichkeiten:

Programmablaufplan (PAP)

Der Programmablaufplan ist ein Klassiker, um Algorithmen darzustellen. Hier stehen alle Elemente einer Programmiersprache zur Verfügung (If, Schleifen, Methodenaufrufe usw.). So kann man die ganze Logik eines Programms darstellen, ohne sich auf eine bestimmte Programmiersprache festlegen zu müssen.

Einfache Beschreibung

Manchmal genügt auch eine textuelle Beschreibung, in der der Ablauf und die Regeln definiert werden. Zum Beispiel: “Eine Zahl größer Null soll eingegeben werden. Andernfalls beendet sich das Programm. Anschließend soll die Zahl 3 mit jeder Zahl von 0 bis zur eingegebenen Zahl multipliziert und das Ergebnis ausgegeben werden.”

Pseudocode

Der Pseudocode ähnelt dem PAP, hat aber eine freiere Struktur. Man kann Schlüsselworte wie if, else, for usw. verwenden, aber auch allgemeinere Ausdrücke wie wenn, dann, von, bis. Der Pseudocode sollte so geschrieben sein, dass er einfach zu lesen ist und keiner speziellen Programmiersprachen-Syntax folgt.

LESEN  „Schön überteuert?“: Die Preise der OACE-Kleidung von Smartgains

Struktogramm

Das Struktogramm ist ähnlich wie der PAP, nur in Kastenform. Persönlich habe ich aber Schwierigkeiten damit, da es schnell unübersichtlich wird, wenn man später Anweisungen hinzufügen möchte.

Programm

Hier ist das Programm, das den zuvor beschriebenen Algorithmus umsetzt. Es gibt zwei Versionen: Eine in Java und eine in PHP.

/** 
 * JAVA 
 * Multipliziert 0 bis zur Eingabe mit 3 und 
 * gibt die Ergebnisse aus 
 * @param input: Zahleneingabe 
 */ 
public static void multiplikation(int input){ 
  if (input > 0){ 
    for (int i = 0; i <= input; i++) { 
      System.out.println(3*i); 
    } 
  } 
} 
/** 
 * PHP 
 * Multipliziert 0 bis zur Eingabe mit 3 und 
 * gibt die Ergebnisse aus 
 * @param $input: Zahleneingabe 
 */ 
function multiplikation($input){ 
  if ($input > 0){ 
    for ($i = 0; $i < $input; $i++) { 
      echo $i * 3; 
    } 
  } 
} 

Berühmte Algorithmen

Algorithmen gibt es viele, und das nicht erst seit es Computer gibt. Hier sind ein paar Beispiele:

  • Euklidischer Algorithmus: Der älteste bekannte (nicht triviale) Algorithmus ist der euklidische Algorithmus, der etwa 300 v. Chr. entwickelt wurde, um den größten gemeinsamen Teiler zu bestimmen.
  • Trémaux’s Algorithmus: Dieser Algorithmus bietet eine Methode, um sicher durch jedes Labyrinth oder Irrgarten zu gelangen.
  • Google-Algorithmus: Auch die Google-Algorithmen, die alle nach Tieren benannt sind (Panda, Hummingbird usw.), gehören dazu. Sie beschreiben, wie Google beurteilt, welche Seiten wie relevant sind und unter welchen Suchbegriffen sie ranken.
  • Eine Liste weiterer Algorithmen findest du in der Wikipedia-Liste von Algorithmen.

Das war eine kurze Einführung in das Thema Algorithmus. Wenn du mehr wissen möchtest, stehe ich gerne zur Verfügung!