DAA - Einführung
Ein Algorithmus besteht aus einer Reihe von Arbeitsschritten zur Lösung eines Problems bei der Durchführung von Berechnungs-, Datenverarbeitungs- und automatisierten Argumentationsaufgaben. Ein Algorithmus ist eine effiziente Methode, die in endlicher Zeit und Raum ausgedrückt werden kann.
Ein Algorithmus ist der beste Weg, um die Lösung eines bestimmten Problems auf sehr einfache und effiziente Weise darzustellen. Wenn wir einen Algorithmus für ein bestimmtes Problem haben, können wir ihn in einer beliebigen Programmiersprache implementierenalgorithm is independent from any programming languages.
Algorithmus-Design
Zu den wichtigen Aspekten des Algorithmusdesigns gehört die Erstellung eines effizienten Algorithmus zur effizienten Lösung eines Problems mit minimalem Zeit- und Raumaufwand.
Um ein Problem zu lösen, können verschiedene Ansätze verfolgt werden. Einige von ihnen können hinsichtlich des Zeitverbrauchs effizient sein, während andere Ansätze speichereffizient sein können. Es ist jedoch zu beachten, dass sowohl der Zeitverbrauch als auch die Speichernutzung nicht gleichzeitig optimiert werden können. Wenn wir einen Algorithmus benötigen, um in kürzerer Zeit ausgeführt zu werden, müssen wir in mehr Speicher investieren, und wenn wir einen Algorithmus benötigen, um mit weniger Speicher ausgeführt zu werden, müssen wir mehr Zeit haben.
Schritte zur Problementwicklung
Die folgenden Schritte sind zur Lösung von Rechenproblemen erforderlich.
- Problem Definition
- Entwicklung eines Modells
- Spezifikation eines Algorithmus
- Einen Algorithmus entwerfen
- Überprüfen der Richtigkeit eines Algorithmus
- Analyse eines Algorithmus
- Implementierung eines Algorithmus
- Programmtests
- Documentation
Eigenschaften von Algorithmen
Die Hauptmerkmale von Algorithmen sind wie folgt:
Algorithmen müssen einen eindeutigen Namen haben
Algorithmen sollten explizit definierte Ein- und Ausgänge haben
Algorithmen sind mit eindeutigen Operationen gut geordnet
Algorithmen halten in endlicher Zeit an. Algorithmen sollten nicht unendlich laufen, dh ein Algorithmus muss irgendwann enden
Pseudocode
Pseudocode bietet eine allgemeine Beschreibung eines Algorithmus ohne die mit Klartext verbundene Mehrdeutigkeit, aber auch ohne die Notwendigkeit, die Syntax einer bestimmten Programmiersprache zu kennen.
Die Laufzeit kann allgemeiner geschätzt werden, indem Pseudocode verwendet wird, um den Algorithmus als einen Satz grundlegender Operationen darzustellen, die dann gezählt werden können.
Unterschied zwischen Algorithmus und Pseudocode
Ein Algorithmus ist eine formale Definition mit einigen spezifischen Merkmalen, die einen Prozess beschreibt, der von einer Turing-vollständigen Computermaschine ausgeführt werden kann, um eine bestimmte Aufgabe auszuführen. Im Allgemeinen kann das Wort "Algorithmus" verwendet werden, um jede Aufgabe auf hoher Ebene in der Informatik zu beschreiben.
Andererseits ist Pseudocode eine informelle und (oft rudimentäre) vom Menschen lesbare Beschreibung eines Algorithmus, die viele detaillierte Details enthält. Das Schreiben eines Pseudocodes unterliegt keiner Einschränkung der Stile und sein einziges Ziel besteht darin, die Schritte des Algorithmus auf hoher Ebene in natürlicher Sprache auf sehr realistische Weise zu beschreiben.
Im Folgenden finden Sie beispielsweise einen Algorithmus für die Einfügesortierung.
Algorithm: Insertion-Sort
Input: A list L of integers of length n
Output: A sorted list L1 containing those integers present in L
Step 1: Keep a sorted list L1 which starts off empty
Step 2: Perform Step 3 for each element in the original list L
Step 3: Insert it into the correct position in the sorted list L1.
Step 4: Return the sorted list
Step 5: Stop
Hier ist ein Pseudocode, der beschreibt, wie der oben im Algorithmus Insertion-Sort erwähnte abstrakte Prozess auf hoher Ebene realistischer beschrieben werden könnte.
for i <- 1 to length(A)
x <- A[i]
j <- i
while j > 0 and A[j-1] > x
A[j] <- A[j-1]
j <- j - 1
A[j] <- x
In diesem Tutorial werden Algorithmen in Form eines Pseudocodes vorgestellt, der in vielerlei Hinsicht C, C ++, Java, Python und anderen Programmiersprachen ähnelt.