Informatik

Algorithmus einfach erklärt: Merkmale und Beispiele

Algorithmus einfach erklärt: Merkmale und Beispiele
Algorithmus einfach erklärt: Merkmale und Beispiele
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Algorithmus ist eine genaue Schrittfolge, die eine Eingabe nach festen Regeln verarbeitet und zu einer Ausgabe führt. Er beschreibt also nicht nur das Ziel, sondern auch den Weg dorthin. Auf dieser Seite lernst du, Algorithmen zu erkennen, zu prüfen und von Programmen zu unterscheiden.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Ziel zur genauen Schrittfolge

Die Anweisung „Ordne die Karten“ nennt ein Ziel. Sie sagt aber nicht, welche Karte du zuerst vergleichst, wie du sie verschiebst oder wann du fertig bist. Für eine Maschine ist das zu ungenau.

Definition

Algorithmus

Ein Algorithmus ist eine endlich beschriebene Folge ausführbarer und eindeutig geregelter Schritte zur Lösung eines Problems oder einer Problemklasse. Er verarbeitet eine Eingabe und erzeugt daraus eine Ausgabe.

Ein Algorithmus kann in Alltagssprache, als grafischer Ablauf oder in einer Programmiersprache dargestellt werden. Entscheidend ist nicht die Darstellungsform, sondern ob die Schritte genau genug sind.

Beispiel

Ziel: Eine unverschlossene Tür öffnen, die sich zu dir hin öffnet.

„Öffne die Tür“ reicht nur dann als Schritt, wenn die ausführende Person oder Maschine diese Grundoperation bereits beherrscht. Andernfalls muss die Handlung genauer zerlegt werden, zum Beispiel: Klinke herunterdrücken, Tür zu dir ziehen, Klinke loslassen.

Daran siehst du: Ob ein Schritt ausführbar ist, hängt von den Fähigkeiten des Ausführenden ab.

Teste dich
Frage 1 von 1LeichtWelche Anweisung kann jemand ausführen, der nur benachbarte Karten vergleichen und vertauschen kann?
Lösung: Vergleiche zwei benachbarte Karten und vertausche sie, wenn die linke Zahl größer ist. — Die richtige Anweisung nennt eine konkrete Prüfung und eine konkrete Handlung. Sie kann Teil eines Sortieralgorithmus sein. Ein vollständiger Sortieralgorithmus braucht zusätzlich eine Wiederholungsregel und eine Endbedingung.
Woran du einen Algorithmus erkennst

Vier Fragen helfen dir beim Prüfen:

  1. Ausführbarkeit: Kann der vorgesehene Mensch oder die Maschine jeden Einzelschritt ausführen?
  2. Eindeutigkeit: Ist in jeder Situation geregelt, welcher Schritt als Nächstes folgt?
  3. Endlichkeit: Lässt sich die Vorschrift in einem endlichen Text vollständig angeben?
  4. Allgemeinheit: Löst sie eine ganze Problemklasse und nicht nur einen einzigen vorbereiteten Fall?

Allgemeinheit ist nur nötig, wenn tatsächlich eine Problemklasse gelöst werden soll. Für die Aufgabe „Vergleiche genau A, B und C“ darf ein Verfahren auf diese drei Gegenstände zugeschnitten sein.

Merke

Eine Wiederholungsregel wie „Solange noch Schachteln vorhanden sind“ kann endlich beschrieben sein, obwohl sie je nach Eingabe unterschiedlich oft ausgeführt wird.

Oft wird zusätzlich Terminierung verlangt: Der Algorithmus endet für jede zulässige Eingabe nach endlich vielen Schritten und liefert ein Ergebnis oder bricht geregelt ab. Dauerhaft laufende Systeme wie ein Betriebssystem sollen dagegen absichtlich weiterarbeiten. Je nach genauer Definition bezeichnet man solche Abläufe deshalb nicht als terminierende Algorithmen, sondern allgemeiner als rechnergestützte Verfahren.

Gut zu wissen

In der theoretischen Informatik wird genauer unterschieden: deterministisch bedeutet, dass jederzeit genau ein nächster Schritt feststeht. Determiniertheit bedeutet, dass gleiche Eingaben zum gleichen Ergebnis führen. Ein festgelegter Weg führt bei gleichen Bedingungen zum gleichen Ergebnis; derselbe Ergebniswert kann aber auch über unterschiedlich gewählte Wege erreicht werden.

Teste dich
Frage 1 von 2MittelEine Anleitung zählt A, B, C, D auf und endet dann mit „und so weiter“. Welches Merkmal fehlt vor allem?
Lösung: Eine endliche, vollständig angegebene Beschreibung — Die Auslassung lässt offen, wie die Vorschrift für weitere Fälle genau lautet. Eine Schleife könnte die unendliche Aufzählung durch eine endliche Regel ersetzen.
Frage 2 von 2MittelWann ist „Sortiere alle Schachteln“ für eine einfache Waage kein ausführbarer Einzelschritt?
Lösung: Wenn die Waage nur zwei Schachteln vergleichen kann — Ausführbarkeit richtet sich nach den verfügbaren Grundoperationen. Eine Vergleichswaage kann vergleichen, aber nicht auf einen einzigen Befehl hin alle Schachteln sortieren.
So findest du die schwerste Schachtel

Du hast vier Schachteln mit den Gewichten A: 8 g, B: 3 g, C: 11 g und D: 7 g. Die Waage kann immer zwei Schachteln vergleichen.

Beispiel

Eingabe: die vier Schachteln

Verarbeitung:

  1. Behalte A zunächst als Kandidatin.
  2. Vergleiche die Kandidatin nacheinander mit jeder übrigen Schachtel.
  3. Ist die neue Schachtel schwerer, wird sie zur neuen Kandidatin. Sonst bleibt die bisherige Kandidatin.
  4. Sind alle Schachteln geprüft, gib die Kandidatin aus.
VergleichSchwerere Kandidatin danachBegründung
A mit BA mit 8 g8 g sind 5 g mehr als 3 g.
A mit CC mit 11 g11 g sind 3 g mehr als 8 g.
C mit DC mit 11 g11 g sind 4 g mehr als 7 g.

Ausgabe: C ist mit 11 g die schwerste Schachtel.

Nach jedem Vergleich ist die Kandidatin die schwerste aller bisher geprüften Schachteln. Deshalb ist sie nach dem letzten Vergleich auch die schwerste der gesamten Eingabe. Bei gleichem Gewicht kann die bisherige Kandidatin bleiben; ihr Gewicht ist trotzdem maximal.

Teste dich
Frage 1 von 2MittelWarum funktioniert das Verfahren auch mit zehn Schachteln?
Lösung: Weil dieselbe Vergleichsregel wiederholt wird, bis alle Schachteln geprüft sind — Die endliche Wiederholungsregel macht das Verfahren allgemein. Bei jeder weiteren Schachtel kommt genau ein Vergleich hinzu.
Frage 2 von 2SchwerNach einigen Vergleichen ist X die Kandidatin. Was weißt du sicher?
Lösung: X ist mindestens so schwer wie jede bisher geprüfte Schachtel. — Die Kandidatin fasst das Zwischenergebnis zusammen: Sie ist ein Maximum des bereits geprüften Teils.
Vom Algorithmus zum Programm

Ein Algorithmus ist das abstrakte Verfahren. Ein Programm ist seine konkrete Umsetzung in einer Programmiersprache für einen Computer. Derselbe Algorithmus kann in verschiedenen Programmiersprachen programmiert werden.

Das Grundmuster lautet:

Eingabe → Verarbeitung nach Regeln → Ausgabe

Beispiel

Ein Verfahren soll die größere von zwei Zahlen ausgeben.

  • Eingabe: zwei Zahlen x und y
  • Regel: Wenn x größer als y ist, gib x aus; sonst gib y aus.
  • Ausgabe: der größere Zahlenwert

Für x = 3 und y = 5 folgt die Ausgabe 5. Sind beide Werte gleich, gibt der Sonst-Fall y aus; der ausgegebene Zahlenwert bleibt korrekt.

Ein Programm muss die Regeln in Befehle übersetzen, die seine Programmiersprache und der Computer ausführen können. Dabei können Variablen Eingaben oder Zwischenergebnisse speichern, Bedingungen zwischen Fällen wählen und Schleifen Schritte wiederholen. Diese Bausteine gehören zur Umsetzung; die zugrunde liegende Lösungsidee bleibt der Algorithmus.

Teste dich
Frage 1 von 2LeichtWelche Aussage unterscheidet Algorithmus und Programm korrekt?
Lösung: Der Algorithmus beschreibt das Verfahren; das Programm setzt es als ausführbaren Code um. — Computer führen konkrete Befehle aus. Der Algorithmus kann davon unabhängig als Lösungsidee beschrieben werden.
Frage 2 von 2MittelWas ist beim Verfahren „größere Zahl“ die Verarbeitung?
Lösung: Der Vergleich von x und y mit der anschließenden Auswahl — Eingaben werden durch eine Regel verarbeitet. Hier sind Vergleich und Fallauswahl die entscheidenden Schritte.
Gute Algorithmen auswählen und verbessern

Für dasselbe Problem kann es mehrere korrekte Algorithmen geben. Sie können sich darin unterscheiden, wie viel Zeit, Speicher oder andere Ressourcen sie benötigen. Welche Lösung geeignet ist, hängt von der Eingabe und vom Ziel ab.

Beim Finden der schwersten Schachtel wäre es unnötig, erst alle Schachteln vollständig nach Gewicht zu sortieren. Wenn nur das Maximum gesucht ist, reichen fortlaufende Vergleiche mit einer Kandidatin.

Merke

„Korrekt“ beantwortet die Frage: Liefert das Verfahren das richtige Ergebnis? „Geeignet“ fragt zusätzlich: Passt sein Aufwand zur Aufgabe und zu den verfügbaren Mitteln?

So verbesserst du eine unklare Schrittfolge:

  1. Markiere die erste Stelle, an der mehrere Deutungen möglich sind.
  2. Benenne die verfügbaren Grundoperationen.
  3. Ersetze das unklare Ziel durch ausführbare Einzelschritte.
  4. Ergänze bei Verzweigungen eine Bedingung.
  5. Ergänze bei Wiederholungen eine klare Endbedingung.
  6. Prüfe den Ablauf mit normalen Fällen und Randfällen, etwa gleichen Eingabewerten.
Teste dich
Frage 1 von 2SchwerEine Anleitung lautet: „Nimm immer eine passende Schachtel. Höre auf, wenn es reicht.“ Welche Überarbeitung ist am wichtigsten?
Lösung: Festlegen, was „passend“ bedeutet und unter welcher überprüfbaren Bedingung der Ablauf endet — Ein Algorithmus braucht prüfbare Bedingungen. Wörter wie „passend“ und „wenn es reicht“ lassen offen, wie gewählt und beendet wird.
Frage 2 von 2SchwerZwei Algorithmen liefern für alle zulässigen Eingaben das richtige Ergebnis. Was kann trotzdem für die Wahl wichtig sein?
Lösung: Ihr Zeit- und Speicherbedarf bei den erwarteten Eingaben — Korrektheit allein entscheidet nicht immer. Ressourcenbedarf und Einsatzbedingungen können einen Algorithmus geeigneter machen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Algorithmus
    • Aufbau
      • Eingabe, Verarbeitung, Ausgabe
      • genaue Schrittfolge
    • Prüfkriterien
      • ausführbar und eindeutig
      • endlich beschrieben und passend allgemein
      • bei terminierenden Algorithmen mit Endbedingung
    • Umsetzung
      • abstraktes Verfahren wird zum Programm
      • Bedingungen wählen, Schleifen wiederholen
    • Bewertung
      • Korrektheit des Ergebnisses
      • Zeit, Speicher und Einsatzbedingungen
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Beschreibung trifft den Kern eines Algorithmus?
Lösung: Eine genaue Schrittfolge verarbeitet Eingaben nach Regeln zu Ausgaben. — Algorithmen sind nicht an eine Programmiersprache gebunden. Entscheidend sind die präzisen Verarbeitungsschritte.
Frage 2 von 3MittelEine Schleife wiederholt „Vergleiche die nächste Schachtel“, nennt aber keine Abbruchbedingung. Welches Problem besteht?
Lösung: Es ist nicht geregelt, wann die Wiederholung endet. — Eine Schleife braucht eine prüfbare Fortsetzungs- oder Endbedingung, zum Beispiel „solange noch ungeprüfte Schachteln vorhanden sind“.
Frage 3 von 3SchwerEine Maschine kann nur zwei Zahlen vergleichen und Werte speichern. Welche Anweisung ist für sie am besten ausführbar und allgemein?
Lösung: „Speichere die erste Zahl als Kandidatin; vergleiche jede weitere mit ihr und ersetze die Kandidatin, wenn die weitere Zahl größer ist.“ — Die richtige Antwort zerlegt die Aufgabe in verfügbare Operationen und wiederholt dieselbe Regel für alle weiteren Eingaben.

Passend dazu