web-dev-qa-db-fra.com

Différence entre un pseudo code et un algorithme?

Techniquement, y a-t-il une différence entre ces deux mots ou pouvons-nous les utiliser de manière interchangeable? Les deux décrivent plus ou moins la séquence logique des étapes qui suivent pour résoudre un problème. n'est-ce pas? SO pourquoi utilisons-nous en fait deux de ces mots s'ils sont censés parler de la même chose?

Ou, si ce ne sont pas des mots synonymes, qu'est-ce qui les différencie? Dans quels contextes sommes-nous censés utiliser le pseudo-code Word contre l'algorithme Word?

17
Vamsi Emani

Définition d'un algorithme par Wikipédia:

En mathématiques et en informatique, un algorithme est une méthode efficace exprimée comme une liste finie d'instructions bien définies pour calculer une fonction. Les algorithmes sont utilisés pour le calcul, le traitement des données et le raisonnement automatisé.

Les algorithmes peuvent être décrits de diverses manières, des formules mathématiques pures aux graphiques complexes, plus souvent qu'autrement, sans pseudocode.

Le pseudocode décrit comment vous implémenteriez un algorithme sans entrer dans les détails syntaxiques.

Donc non, ils ne sont pas vraiment synonymes.

37
Demian Brecht

Un algorithme est une idée sur la façon d'écrire le code. Pseudo code est le texte écrit dont vous avez besoin pour communiquer cette idée.

8
DanC

"Pseudocode" est à "algorithme" comme "anglais" est à "blague knock-knock".

Un algorithme est une structure formelle pour quelque chose qui pourrait être exprimé en pseudocode ou en code réel.

Une blague à couper le souffle est une structure formelle pour quelque chose qui pourrait être exprimé en anglais ou dans une autre langue. (Est-ce que d'autres cultures font des blagues à deux? Je ne sais même pas.)

6
Dan Ray

Il n'y a qu'un seul algorithme de tri rapide, qui est le genre de chose qui existerait dans le monde des idées pures de Platon. Il pourrait y avoir un certain nombre de descriptions de pseudo-code différentes de celui-ci. Je pense que je définirais le pseudo-code comme un texte qui ressemble à peu près au code informatique, et pourrait être traduit par un programmeur expérimenté en code informatique réel sans avoir à faire de sauts créatifs.

Donc non, je n'utiliserais pas les termes de façon interchangeable.

3
PeterAllenWebb

Un algorithme est une approche logique systématique utilisée pour résoudre des problèmes dans un ordinateur tandis que le pseudocode est la déclaration en anglais simple qui peut être traduite plus tard dans un langage de programmation (programme).

2
aloyce boniface

Un algorithme est le sémantique tandis que le pseudo-code n'est qu'un syntaxe de la communication sur la résolution d'un problème. Cela signifie que l'algorithme est un moyen réel de résoudre un problème alors que le pseudo-code n'est qu'un moyen d'exprimer de cette façon.

Un algorithme a la même signification (sémantique) si vous l'exprimez de quelque façon que ce soit (syntaxe) que ce soit le langage de programmation C, le pseudo-code ou la langue anglaise.

2
m3th0dman

Même si le pseudo-code semble plus proche du code qu'un algorithme, en pratique, le pseudo-code est moins formel et c'est une description de plus haut niveau. Par exemple, vous pouvez décrire un ordinateur jouant aux échecs comme un pseudo-code comme celui-ci:

  • placer les pièces initiales à leur emplacement
  • tableau d'affichage
  • pendant que le jeu n'est pas terminé
    • faire bouger et afficher le panneau
    • Inviter l'utilisateur à se déplacer
    • faire bouger les utilisateurs

Oui, c'est un pseudocode, il est utile comme bon point de départ mais passe sous silence de nombreux détails. Il ne tient pas compte des difficultés et des variations de mise en œuvre, mais le plus grand avantage est qu'il vous permet de conceptualiser l'ensemble de la situation sans avoir à résoudre tous les détails.

Vous pouvez le réviser, en ajoutant un niveau supplémentaire comme ceci:

  • placer les pièces initiales à leur emplacement
  • tableau d'affichage
  • tandis que la planche n'est pas échec et mat
    • faire une liste des actions légales des blancs
    • choisir le meilleur selon certains critères
    • faire ce mouvement et calculer le conseil résultant
    • voir si échec ou mat a eu lieu
    • panneau d'affichage
    • faire une liste des actions légales des noirs
    • Inviter l'utilisateur à effectuer un mouvement légal pour la saisie
    • faire ce mouvement et calculer le conseil résultant
    • voir si échec ou mat a eu lieu
    • panneau d'affichage

Vous pouvez maintenant écrire un pseudocode pour chacune des étapes principales comme "faire une liste des mouvements légaux des noirs", comme ceci:

  • pour chaque pièce noire
    • pour le type de pièce dans un emplacement donné
      • faire une liste des prochains emplacements possibles

Maintenant, vous pouvez voir que la puissance du pseudocode réside vraiment dans sa capacité à montrer la situation en une seule fois, puis à vous permettre d'adresser les détails pièce par pièce. La faiblesse est que toute étape n'est pas une étape simple et définitive.

Un algorithme reprend généralement l'une de ces étapes et détaille diverses structures de données dans un langage symbolique afin que vous puissiez atteindre efficacement l'objectif de l'étape.

Par exemple, get_legal_moves(board, color) est digne d'une conception d'algorithme:

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:....

Vous pouvez voir que l'algorithme doit être très précis pour être utile.

Cela garantit plusieurs choses: que les objectifs soient atteints sans erreur, d'abord et avant tout. Les étapes sont très détaillées et exécutables de manière mécanisée et que les étapes sont suffisamment petites pour que vous puissiez les réorganiser pour augmenter l'efficacité (vitesse) avec laquelle vous terminez la tâche.

1
Ravi Annaswamy

Le pseudo-code que je comprends est un intermédiaire entre un algorithme et un programme implémenté. Vous pouvez baser votre pseudo-code sur un algorithme. Il contient des étapes transférables à mettre en œuvre.

L'algorithme, d'autre part, implique la logique globale. en étapes séquentielles pour résoudre un problème. s'il est représenté schématiquement, il est appelé un organigramme.

Certains pourraient y faire référence en tant que pseudo-code étant un terme courant dans le développement de logiciels d'entreprise où les développeurs d'objets métier côté client écrivent du pseudo-code en fonction des exigences. Il est remis à un programmeur/développeur à implémenter.

Algorithme que vous trouverez plus courant dans la programmation de la terminologie comme la programmation des systèmes, la recherche, le tri, pratiquement partout où il y a une logique complexe à implémenter.

1
Aditya P

D'après mon expérience, le pseudo-code a toujours été écrit par des personnes fonctionnelles (personnes propriétaires du processus) comme un moyen d'exprimer les règles métier qui s'appliquent à un processus, un module ou un sous-système.

Un algorithme est un ensemble difinitif d'instructions logiques permettant de résoudre une tâche aussi spécifique que possible.

L'algorithme est quelque chose qui est représenté en termes mathématiques. Il comprend, l'analyse, l'implémentation de base (même celle qui est exprimée en pseudo-code), les considérations de complexité (meilleure, moyenne et pire analyse, etc.).

Le pseudo-code est une représentation lisible par l'homme d'un programme. Même cela peut être utilisé pour décrire un algorithme.

0
sarat