Was ist ein Algorithmus

Eine eindeutige (Berechnungs-) Vorschrift, die beschreibt wie man Eingabeobjekte in Ausgabeobjekte umwandelt.

Allgemeine Notationsweise

Problem Kurze Beschreibung des Problems
Eingabe Alle gültigen Eingaben für den Algorithmus
Ausgabe Das eindeutige daraus resultierende Ergebniss

Beispiel:

Größter gemeinsamer Teiler

Problem GgT?
Eingabe Zwei natürliche Zahlen a und b
Ausgabe Der größte gemeinsame Teiler von a und b

Eine konkrete Eingabe wird meist auch Instanz genannt.

Anforderungen

Generell müssen folgende Anforderungen erfüllt sein um von einem gültigen Algorithmus sprechen zu können:

  • Endlichkeit
    • Der Algorithmus in einer "endlichen" Anzahl von Befehlen beschrieben sein
  • Determiniertheit
    • Der Algorithmus muss für jeden gültigen Eingabewert ein eindeutiges Resultat liefern. (Bei erneuter Verarbeitung des gleichen Wertes muss das gleiche Ergebniss ausgegeben werden)
  • Vollständigkeit
    • Für jede erlaubte Eingabe muss der Algorithmus in einer endlichen Anzahl von Schritten anhalten und ein gültiges Ergebniss liefern
  • Universalität
    • Alle Eingabedaten werden korrekt verarbeitet
  • Nachvollziehbarkeit
    • Der Algorithmus muss von Dritten nachvollzogen/geprüft werden können

Grundlegend kann man also Fragen:

  • Liefert der Algorithmus für alle Eingaben ein korrektes Ergebnis?
  • Terminiert der Algorithmus?
  • Liefert er für alle gültigen Eingaben immer das richtige Ergebnis?

Nassi Schneidermann Diagramm

Anmerkung: Alle Programmbausteine in der Abbildung haben genau einen Eingang und genau einen Ausgang!


Mindmap