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.