Unterschied zwischen Pseudocode und Algorithmus?

17

Gibt es einen technischen Unterschied zwischen diesen beiden Wörtern oder können wir sie austauschbar verwenden? Beide beschreiben mehr oder weniger die logische Abfolge der Schritte, die beim Lösen eines Problems folgen. ist es nicht? Also, warum benutzen wir eigentlich zwei solche Wörter, wenn sie über dasselbe sprechen sollen?

Oder, falls es sich nicht auch um Wörter handelt, was unterscheidet sie? In welchen Kontexten sollen wir das Wort Pseudocode gegenüber dem Wortalgorithmus verwenden?

Vamsi Emani
quelle
4
Ein Algorithmus ist Quicksort. Pseudocode ist "Mach mir ein Sandwich, dann bring es mir, wenn es fertig ist."
Neil
Siehe diese Antwort auf eine andere Frage. Dort habe ich eine Beziehung zwischen einem Algorithmus und einem Pseudocode beschrieben.
Goran Jovic
3
Die Kurzfassung: 'Pseudocode ist eine der Möglichkeiten, einen Algorithmus darzustellen'
Goran Jovic
3
@ Neil oder sogar SUDO machen mir ein Sandwich xkcd.com/149
StuperUser

Antworten:

37

Wikipedia's Definition eines Algorithmus:

In der Mathematik und Informatik ist ein Algorithmus eine effektive Methode, die als endliche Liste wohldefinierter Anweisungen zur Berechnung einer Funktion ausgedrückt wird. Algorithmen werden zur Berechnung, Datenverarbeitung und zum automatisierten Schließen verwendet.

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

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

Also nein, sie sind auch nicht wirklich.

Demian Brecht
quelle
8

Ein Algorithmus ist eine Idee zum Schreiben des Codes. Pseudocode ist der geschriebene Text, den Sie benötigen, um diese Idee zu kommunizieren.

DanC
quelle
Nett! Kurz und gerade. Aber ich würde "einen geschriebenen Text" als "den geschriebenen Text" sagen. Was denkst du?
Luciano
6

"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.)

Dan Ray
quelle
Ich glaube nicht. Zumindest gibt es nichts Ähnliches in Portugiesisch über dieses Klopf-Klopf-Spiel. Also, ich würde sagen, dass es nicht auch in anderen romanischen Sprachen wie Spanisch und Italienisch gibt. Ich werde Französisch nicht einschließen, weil es vor Jahrhunderten eine lange Affäre mit Englisch auf britischen Inseln hatte, und ich kann keine anderen romanischen Sprachen wie Rumänisch und andere.
Luciano
3

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

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

PeterAllenWebb
quelle
2

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

Aloyce Boniface
quelle
2

Ein Algorithmus ist die Semantik, während der Pseudocode nur eine Syntax der Kommunikation zur Lösung eines Problems ist. Dies bedeutet, dass der Algorithmus ein tatsächlicher Weg ist, ein Problem zu lösen, während der Pseudocode nur ein Weg ist, dies auszudrücken.

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

m3th0dman
quelle
1

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

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

Einige bezeichnen dies möglicherweise als Pseudo-Code, der ein gängiger Begriff in der Entwicklung von Unternehmenssoftware ist, in dem die clientseitigen Entwickler von Geschäftsobjekten Pseudo-Code basierend auf Anforderungen schreiben. Dies wird einem Programmierer / Entwickler zur Implementierung gegeben.

Algorithmen, die bei der Programmierung von Begriffen wie Systemprogrammierung, -suche und -sortierung gebräuchlicher sind, sind grundsätzlich überall dort zu finden, wo eine komplexe Logik implementiert werden muss.

Aditya P
quelle
1

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 Schachspielcomputer wie folgt als Pseudocode beschreiben:

  • Platziere die ersten Stücke an ihren Orten
  • Anzeigetafel
  • während das Spiel noch nicht vorbei ist
    • bewegen und Anzeigetafel
    • Benutzer zum Verschieben auffordern
    • Benutzer bewegen

Ja, dies ist ein Pseudocode, der als guter Ausgangspunkt hilfreich ist, aber viele Details überdeckt. Implementierungsschwierigkeiten und -variationen werden nicht berücksichtigt. Der größte Vorteil besteht jedoch 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 hinzufügen:

  • Platziere die ersten Stücke an ihren Orten
  • Anzeigetafel
  • während das Brett nicht schachmatt oder unentschieden ist
    • Machen Sie eine Liste der legalen Schritte von Weiß
    • Wählen Sie die besten nach bestimmten Kriterien
    • Mach diesen Zug und berechne die resultierende Karte
    • Sehen Sie nach, ob ein Schachmatt oder ein Unentschieden stattgefunden hat
    • Anzeigetafel
    • Machen Sie eine Liste der legalen Züge von Schwarz
    • Eingabeaufforderung für den legalen Schritt
    • Mach diesen Zug und berechne die resultierende Karte
    • Sehen Sie nach, ob ein Schachmatt oder ein Unentschieden stattgefunden hat
    • Anzeigetafel

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

  • für jedes schwarze Stück
    • für Stückart in einem gegebenen Standort
      • Machen Sie eine Liste der nächsten möglichen Standorte

Jetzt können Sie sehen, dass die Stärke von Pseudocode darin besteht, die gesamte Situation auf einmal darzustellen und dann Details Stück für Stück zu adressieren. 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.

Ist zum Beispiel get_legal_moves(board, color)eines Algorithmusentwurfs würdig:

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 und so klein, dass Sie sie neu anordnen können, um die Effizienz (Geschwindigkeit) zu erhöhen, mit der Sie die Aufgabe abschließen.

Ravi Annaswamy
quelle
Dies scheint eine Top-Down-Algorithmus-Zerlegung zu sein, die bei jedem Schritt in Pseudocode ausgedrückt wird.
Nathan Tuggy
0

Nach meiner Erfahrung wurde Pseudocode immer von Fachleuten (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 besteht aus einer Reihe von logischen Anweisungen, mit denen eine bestimmte Aufgabe so genau wie möglich gelöst werden kann.

Michael Riley - AKA Gunny
quelle
0

Algorithmus ist etwas, das in mathematischen Begriffen dargestellt wird. Es beinhaltet Analyse, grundlegende Implementierung (auch wenn dies in Pseudocode ausgedrückt ist), Überlegungen zur Komplexität (beste, durchschnittliche und schlechteste Analyse usw.).

Pseudocode ist eine von Menschen lesbare Darstellung eines Programms. Sogar das kann verwendet werden, um einen Algorithmus zu beschreiben.

sarat
quelle
-2

Pseudo bedeutet, dass Single & Code eine Anweisung sein kann. Hier bedeutet Pseudo-Code eine Anweisung, die verwendet wird, um die Programmiersprache des Computers leicht zu verstehen. Sie hilft bei der Analyse des Programmiercodes. . wobei als Algorithmus ein endlicher logischer Schritt von Anweisungen zur Lösung eines Problems ist.

gopiraj anupa
quelle
1
dies scheint nicht zu bieten alles wesentliche über gemacht Punkte und erläuterte vor 10 Antworten
gnat