In der Informatik ist ein Algorithmus eine endliche Folge gut definierter, computerimplementierbarer Anweisungen, um eine Klasse von Problemen zu lösen oder eine Berechnung durchzuführen. Es handelt sich um eine Schritt-für-Schritt-Prozedur, die einige Eingaben (Daten) durchführt, verarbeitet und eine Ausgabe (Ergebnis) erzeugt.
Eine formale Definition betont mehrere Schlüsselmerkmale:
* Endlichkeit: Der Algorithmus muss nach einer begrenzten Anzahl von Schritten enden. Es kann nicht für immer laufen.
* Definition: Jeder Schritt muss genau definiert sein; Die zu erfüllten Handlungen müssen für jeden Fall streng und eindeutig angegeben sein. Es sollte keinen Raum für Interpretation geben.
* Eingabe: Ein Algorithmus hat null oder mehr Eingänge (Mengen, die ihm zunächst vor Beginn des Algorithmus gegeben werden).
* Ausgabe: Ein Algorithmus hat einen oder mehrere Ausgänge (Mengen, die eine bestimmte Beziehung zu den Eingängen haben).
* Wirksamkeit: Jeder Schritt muss machbar sein, was bedeutet, dass er genau und in einer begrenzten Zeit getan werden kann. Die beteiligten Operationen müssen ausreichend grundlegend sein, dass sie genau und in einer begrenzten Zeit im Prinzip ausgeführt werden können.
Im Wesentlichen ist ein Algorithmus ein Rezept oder eine Reihe von Anweisungen zur Lösung eines bestimmten Problems. Es ist nicht nur ein Programm (obwohl es als Programm in einer Programmiersprache implementiert werden kann), sondern das zugrunde liegende logische Verfahren, das das Programm verkörpert. Der gleiche Algorithmus kann in vielen verschiedenen Programmiersprachen implementiert werden.
Zum Beispiel ist ein Rezept zum Backen eines Kuchens analog zu einem Algorithmus. Es gibt die Zutaten (Eingabe), die Schritte (Anweisungen) und das Endprodukt (Ausgabe) an. Ein Sortieralgorithmus, wie Blasensortier oder Zusammenführungssort, ist eine genaue Reihe von Schritten, um eine Liste von Elementen in einer bestimmten Reihenfolge anzuordnen.