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
