Einsteiger ~12 Min. Denken & Wissen

Was ist ein Algorithmus?

Lernziele

  • Den Begriff Algorithmus präzise definieren können
  • Die fünf Eigenschaften eines Algorithmus benennen und erklären
  • Pseudocode von Flowcharts unterscheiden
  • Alltagssituationen als Algorithmen beschreiben

Einführung

Jedes Mal, wenn dein Smartphone eine Route berechnet, dein Newsfeed sortiert wird oder eine Suchmaschine in Millisekunden Millionen von Seiten durchforstet, steckt dahinter ein Algorithmus. Das Wort klingt technisch — ist aber eine der ältesten Ideen der Mathematik. Der Name geht auf den persischen Mathematiker al-Chwarizmi zurück, der im 9. Jahrhundert Rechenregeln für Addition und Multiplikation aufschrieb.

Ein Algorithmus ist im Grunde nichts anderes als eine präzise Schritt-für-Schritt-Anweisung, die ein Problem löst. Jeder Mensch befolgt täglich dutzende Algorithmen, ohne es zu merken. Diese Lektion zeigt dir, was einen Algorithmus auszeichnet — und wie du Alltagsabläufe in dieser Form denken kannst.

Grundidee

Stell dir ein Kochrezept vor: Es listet Zutaten auf (Eingabe), beschreibt jeden Arbeitsschritt genau und liefert am Ende ein fertiges Gericht (Ausgabe). Wenn du das Rezept Schritt für Schritt befolgst, kommst du immer zum gleichen Ergebnis — vorausgesetzt, die Zutaten sind gleich und du hältst dich an die Anleitung.

Genau das ist ein Algorithmus: eine endliche Folge von Schritten, die eine Eingabe in eine Ausgabe umwandelt. Entscheidend ist, dass jeder Schritt eindeutig ist — nicht interpretierbar, nicht vage. „Etwas Salz hinzufügen” wäre keine gute algorithmische Anweisung. „1 Teelöffel Salz hinzufügen” schon.

Erklärung

Die fünf Eigenschaften eines Algorithmus

Ein echter Algorithmus muss fünf Bedingungen erfüllen:

1. Eindeutigkeit: Jede Anweisung muss so klar formuliert sein, dass es keine Interpretationsspielräume gibt. „Geh ein Stück weit” ist keine eindeutige Anweisung — „Geh 500 Meter geradeaus” schon.

2. Ausführbarkeit: Jeder einzelne Schritt muss tatsächlich durchführbar sein. Ein Schritt wie „berechne die größte bekannte Primzahl” wäre nicht ausführbar, weil diese Berechnung nicht endet.

3. Endlichkeit: Der Algorithmus besteht aus einer endlichen Anzahl von Schritten — er hat einen klar definierten Anfang und ein definiertes Ende.

4. Terminierung: Der Algorithmus muss für alle gültigen Eingaben nach endlich vielen Schritten enden und ein Ergebnis liefern. Eine Endlosschleife verletzt diese Eigenschaft.

5. Determiniertheit: Gleiche Eingabe führt immer zur gleichen Ausgabe. Wenn du denselben Algorithmus mit denselben Daten zweimal ausführst, erhältst du dasselbe Ergebnis.

(Manche Lehrbücher unterscheiden noch zwischen Determiniertheit — gleicher Ablauf — und Determinismus — gleiche Ausgabe. Im Schulkontext werden beide Begriffe oft synonym verwendet.)

Pseudocode und Flowcharts

Algorithmen lassen sich auf zwei verbreitete Arten darstellen:

Pseudocode ist eine informelle, sprachnahe Schreibweise — halb Deutsch, halb Programmiersprache. Er beschreibt die Logik, ohne an eine konkrete Programmiersprache gebunden zu sein:

EINGABE: Zahl n
WENN n < 0:
    AUSGABE: "Negative Zahl"
SONST:
    AUSGABE: n * 2
ENDE

Flowcharts (Ablaufdiagramme) visualisieren denselben Ablauf mit Symbolen: Ovale für Start/Ende, Rechtecke für Aktionen, Rauten für Entscheidungen, Pfeile für den Ablauf. Sie sind anschaulicher, aber bei komplexen Algorithmen schnell unübersichtlich.

Beide Darstellungen haben ihren Platz: Pseudocode eignet sich besser für die Implementierung, Flowcharts besser für die Kommunikation und Dokumentation.

Alltags-Algorithmen

Navigationssysteme sind ein klassisches Beispiel: Eingabe ist dein Startpunkt und Ziel, der Algorithmus berechnet den kürzesten oder schnellsten Weg und gibt eine Route aus. Dabei werden bekannte Algorithmen wie Dijkstra (mehr dazu in der Lektion zu Graphenalgorithmen) verwendet.

Suchmaschinen durchsuchen Milliarden von Webseiten, wenden Ranking-Algorithmen an und liefern in Millisekunden eine sortierte Ergebnisliste. Auch das Empfehlungssystem bei Streaming-Diensten — „Weil du das geschaut hast, könnte dir das gefallen” — basiert auf Algorithmen.

Beispiel aus dem Alltag

Algorithmus: Schuh anziehen

Das klingt trivial — aber versuche mal, es so präzise zu formulieren, dass ein Roboter es ausführen könnte:

EINGABE: Schuh (links oder rechts), Socke bereits an
1. Nimm den Schuh mit beiden Händen.
2. Öffne alle Schnürsenkel vollständig.
3. Halte den Schuh mit der Öffnung nach oben.
4. Führe den Fuß in die Öffnung ein, Zehen zuerst.
5. Drücke die Ferse nach unten, bis der Schuh sitzt.
6. Ziehe die Schnürsenkel gleichmäßig straff.
7. Binde einen einfachen Knoten (links über rechts, durchziehen).
8. Binde eine Schleife (eine Seite zu einer Schlaufe formen, andere drum herum führen, durchziehen).
9. Ziehe beide Schlaufen straff.
AUSGABE: Schuh korrekt angezogen

Bereits dieser einfache Algorithmus hat über zehn Schritte — und jeder Schritt könnte weiter verfeinert werden. Das zeigt: Computerprogramme sind oft viel präziser als menschliche Sprache.

Anwendung

Schreibe einen Algorithmus in Pseudocode für den folgenden Ablauf:

Aufgabe: Du möchtest herausfinden, ob eine eingegebene Zahl gerade oder ungerade ist.

Überlege:

  • Was ist die Eingabe? Was ist die Ausgabe?
  • Welche Bedingung unterscheidet gerade von ungerade?
  • Wie formulierst du die Schritte eindeutig?

Hinweis: Eine Zahl ist gerade, wenn sie durch 2 teilbar ist — das heißt, wenn der Rest bei der Division durch 2 gleich 0 ist. In Pseudocode: REST(n, 2) = 0.

Versuche außerdem, einen zweiten Algorithmus zu schreiben: Ein Nutzer gibt eine Zahl von 1 bis 10 ein — dein Algorithmus soll überprüfen, ob sie im Bereich 1–10 liegt, und andernfalls eine Fehlermeldung ausgeben.

Typische Fehler

Schritte zu vage formulieren: „Sortiere die Liste” ist kein Algorithmusschritt — es ist ein Problem, das selbst gelöst werden muss. Algorithmen müssen so präzise sein, dass ein Computer (oder ein Mensch, der nur die Anweisungen kennt) sie ohne weiteres Nachdenken ausführen kann.

Terminierung vergessen: Schleifen, die nie enden, sind ein klassischer Programmierfehler. Wenn eine Bedingung nie erfüllt wird, läuft das Programm endlos. Immer prüfen: Gibt es für jede mögliche Eingabe eine Bedingung, die die Schleife beendet?

Eingaben nicht spezifizieren: Was passiert, wenn jemand eine negative Zahl eingibt, obwohl nur positive erwartet werden? Ein guter Algorithmus definiert seinen Eingabebereich und behandelt ungültige Eingaben explizit.

Pseudocode mit echtem Code verwechseln: Pseudocode ist kein Programm — er muss nicht syntaktisch korrekt sein. Ziel ist Verständlichkeit, nicht Ausführbarkeit.

Zusammenfassung

  • Ein Algorithmus ist eine endliche, eindeutige Schritt-für-Schritt-Anweisung, die eine Eingabe in eine Ausgabe umwandelt
  • Die fünf Eigenschaften sind: Eindeutigkeit, Ausführbarkeit, Endlichkeit, Terminierung und Determiniertheit
  • Pseudocode beschreibt Algorithmen sprachlich-informell; Flowcharts visualisieren den Ablauf grafisch
  • Alltagsabläufe wie Navigationsrouten, Suchmaschinen und Empfehlungssysteme beruhen auf Algorithmen
  • Schon einfache Abläufe (Schuh anziehen) zeigen, wie viel Präzision ein Algorithmus erfordert

Quiz

Frage 1: Was bedeutet Terminierung bei einem Algorithmus?

Frage 2: Was ist der Unterschied zwischen Pseudocode und einem Flowchart?

Frage 3: Warum ist „Geh ein Stück weit” keine gültige Algorithmusanweisung?

Frage 4: Nenne drei Alltagssituationen, die du als Algorithmus beschreiben könntest. Was wäre jeweils die Eingabe und die Ausgabe?

Schlüsselwörter

algorithmusschritteingabeausgabeterminierungdeterministischpseudocodeflowchartkochrezepteindeutigkeit