it-swarm.com.de

Unterschied zwischen Pseudocode und Algorithmus?

Technisch gesehen gibt es einen Unterschied zwischen diesen beiden Wörtern oder können wir sie austauschbar verwenden? Beide beschreiben mehr oder weniger die logische Abfolge der Schritte, die zur Lösung eines Problems folgen. ist es nicht? SO warum verwenden wir eigentlich zwei solche Wörter, wenn sie von demselben sprechen sollen?

Oder, falls es sich nicht um synonyme Wörter handelt, was unterscheidet sie? In welchen Kontexten sollen wir den Word-Pseudocode gegenüber dem Word-Algorithmus verwenden?

17
Vamsi Emani

Wikipedia Definition eines Algorithmus:

In der Mathematik und Informatik ist ein Algorithmus eine effektive Methode, die als endliche Liste genau definierter Anweisungen zur Berechnung einer Funktion ausgedrückt wird. Algorithmen werden zur Berechnung, Datenverarbeitung und automatisierten Argumentation verwendet.

Algorithmen können auf verschiedene Arten beschrieben werden, von reinen mathematischen Formeln bis hin zu komplexen Graphen, mehrmals ohne Pseudocode.

Pseudocode beschreibt, wie Sie einen Algorithmus implementieren würden, ohne auf syntaktische Details einzugehen.

Also nein, sie sind nicht wirklich synonym.

37
Demian Brecht

Ein Algorithmus ist eine Idee, wie der Code geschrieben wird. Pseudocode ist der geschriebene Text, den Sie benötigen, um diese Idee zu kommunizieren.

8
DanC

"Pseudocode" bedeutet "Algorithmus", während "Englisch" "Klopf-Klopf-Witz" bedeutet.

Ein Algorithmus ist eine formale Struktur für etwas, das im Pseudocode oder im tatsächlichen Code ausgedrückt werden kann.

Ein Klopf-Klopf-Witz ist eine formale Struktur für etwas, das auf Englisch oder in einer anderen Sprache ausgedrückt werden kann. (Machen andere Kulturen Klopf-Klopf-Witze? Ich weiß es nicht einmal.)

6
Dan Ray

Es gibt nur einen Quicksort-Algorithmus, wie er in Platons Welt der reinen Ideen existieren würde. Es kann eine beliebige Anzahl verschiedener Pseudocode-Beschreibungen geben. Ich denke, ich würde Pseudocode als Text definieren, der ungefähr wie Computercode aussieht und von einem erfahrenen Programmierer in tatsächlichen Computercode übersetzt werden könnte, ohne kreative Sprünge machen zu müssen.

Also nein, ich würde die Begriffe nicht austauschbar verwenden.

3
PeterAllenWebb

Ein Algorithmus ist ein systematischer logischer Ansatz zur Lösung von Problemen in einem Computer, während Pseudocode die Anweisung im Klartext ist, die später in eine Programmiersprache (Programm) übersetzt werden kann.

2
aloyce boniface

Ein Algorithmus ist das semantische, während der Pseudocode nur ein Syntax der Kommunikation zur Lösung eines Problems ist. Dies bedeutet, dass der Algorithmus eine tatsächliche Art und Weise ist, wie ein Problem gelöst wird, während der Pseudocode nur eine Möglichkeit ist, diese Art auszudrücken.

Ein Algorithmus hat dieselbe Bedeutung (Semantik), wenn Sie ihn auf irgendeine Weise ausdrücken (Syntax), sei es C-Programmiersprache, Pseudocode oder englische Sprache.

2
m3th0dman

Obwohl Pseudocode dem Code näher zu sein scheint als ein Algorithmus, ist Pseudocode in der Praxis weniger formal und eine Beschreibung auf höherer Ebene. Zum Beispiel können Sie einen Schachcomputer wie folgt als Pseudocode beschreiben:

  • platzieren Sie die ersten Teile an ihren Positionen
  • showboard
  • solange das Spiel noch nicht vorbei ist
    • bewegung machen und Tafel anzeigen
    • Benutzer zum Verschieben auffordern
    • benutzer bewegen

Ja, dies ist ein Pseudocode, der als guter Ausgangspunkt hilfreich ist, aber viele Details beschönigt. Implementierungsschwierigkeiten und -variationen werden nicht berücksichtigt, aber der größte Vorteil besteht darin, dass Sie die gesamte Situation konzipieren können, ohne alle Details lösen zu müssen.

Sie können es überarbeiten und eine weitere Ebene wie folgt hinzufügen:

  • platzieren Sie die ersten Teile an ihren Positionen
  • showboard
  • während das Brett kein Schachmatt ist oder nicht zieht
    • machen Sie eine Liste der legalen Schritte von Weiß
    • wählen Sie das Beste nach bestimmten Kriterien
    • machen Sie diesen Zug und berechnen Sie das resultierende Board
    • überprüfen Sie, ob ein Schachmatt oder ein Unentschieden aufgetreten ist
    • anzeigetafel
    • machen Sie eine Liste der legalen Schritte von Schwarz
    • Benutzer zur legalen Eingabe auffordern
    • machen Sie diesen Zug und berechnen Sie das resultierende Board
    • überprüfen Sie, ob ein Schachmatt oder ein Unentschieden aufgetreten ist
    • anzeigetafel

Jetzt können Sie Pseudocode für jeden der Hauptschritte schreiben, z. B. "Liste der legalen Schritte von Schwarz erstellen":

  • für jedes schwarze Stück
    • für Stücktyp an einem bestimmten Ort
      • machen Sie eine Liste der nächsten möglichen Standorte

Jetzt können Sie sehen, dass die Kraft des Pseudocodes darin besteht, die gesamte Situation auf einmal darzustellen und dann Details Stück für Stück anzusprechen. Die Schwäche ist, dass jeder Schritt kein bestimmter einfacher Schritt ist.

Ein Algorithmus greift normalerweise einen dieser Schritte auf und beschreibt verschiedene Datenstrukturen in einer symbolischen Sprache, damit Sie das Ziel des Schritts effizient erreichen können.

Zum Beispiel verdient get_legal_moves(board, color) ein Algorithmusdesign:

get_legal_moves(board, color):
    for i,j in board_dimensions
        if piece_at i,j is of color
            if piece type is KNIGHT
                add the following to the next moves list:
                    location i+1 j+2, i-1 j+2... etc
            if piece type is rook
                add locations:....

Sie können sehen, dass der Algorithmus sehr genau sein muss, um nützlich zu sein.

Es stellt mehrere Dinge sicher: dass die Ziele in erster Linie fehlerfrei erreicht werden. Die Schritte sind sehr detailliert und mechanisiert ausführbar. Die Schritte sind so klein, dass Sie sie neu anordnen können, um die Effizienz (Geschwindigkeit) zu erhöhen, mit der Sie die Aufgabe beenden.

1
Ravi Annaswamy

Wie ich verstehe, ist Pseudocode ein Vermittler zwischen einem Algorithmus und einem implementierten Programm. Sie können Ihren Pseudocode auf einem Algorithmus basieren. Dies enthält übertragbare Schritte zur Implementierung.

Der Algorithmus impliziert andererseits die Gesamtlogik. in aufeinanderfolgenden Schritten, um ein Problem zu lösen. Wenn es schematisch dargestellt wird, spricht man von einem Flussdiagramm.

Einige bezeichnen dies möglicherweise als Pseudocode, der ein häufiger Begriff in der Entwicklung von Unternehmenssoftware ist, bei dem die clientseitigen Entwickler von Geschäftsobjekten Pseudocode basierend auf den Anforderungen schreiben. Dies wird einem Programmierer/Entwickler zur Implementierung gegeben.

Algorithmen, die in der Programmierung von Terminologie wie Systemprogrammierung, Suche, Sortierung häufiger vorkommen, im Grunde genommen überall dort, wo eine komplexe Logik implementiert werden muss.

1
Aditya P

Nach meiner Erfahrung wurde Pseudocode immer von funktionalem Personal (Personen, denen der Prozess gehört) geschrieben, um die Geschäftsregeln auszudrücken, die für einen Prozess, ein Modul oder ein Subsystem gelten.

Ein Algorithmus ist ein differenzierter Satz logischer Anweisungen, um eine möglichst spezifische Aufgabe zu lösen.

Algorithmus ist etwas, das in mathematischen Begriffen dargestellt wird. Es umfasst Analyse, grundlegende Implementierung (auch wenn dies in Pseudocode ausgedrückt wird), Komplexitätsüberlegungen (Best-, Average- und Worst-Case-Analyse usw.).

Pseudocode ist eine vom Menschen lesbare Darstellung eines Programms. Auch damit kann ein Algorithmus beschrieben werden.

0
sarat