Python - Conception d'algorithmes

L'algorithme est une procédure étape par étape, qui définit un ensemble d'instructions à exécuter dans un certain ordre pour obtenir la sortie souhaitée. Les algorithmes sont généralement créés indépendamment des langages sous-jacents, c'est-à-dire qu'un algorithme peut être implémenté dans plus d'un langage de programmation.

Du point de vue de la structure des données, voici quelques catégories importantes d'algorithmes -

  • Search - Algorithme pour rechercher un élément dans une structure de données.

  • Sort - Algorithme pour trier les éléments dans un certain ordre.

  • Insert - Algorithme pour insérer un élément dans une structure de données.

  • Update - Algorithme pour mettre à jour un élément existant dans une structure de données.

  • Delete - Algorithme pour supprimer un élément existant d'une structure de données.

Caractéristiques d'un algorithme

Toutes les procédures ne peuvent pas être appelées un algorithme. Un algorithme doit avoir les caractéristiques suivantes -

  • Unambiguous- L'algorithme doit être clair et sans ambiguïté. Chacune de ses étapes (ou phases) et leurs entrées / sorties doivent être claires et ne doivent conduire qu'à une seule signification.

  • Input - Un algorithme doit avoir 0 ou plus d'entrées bien définies.

  • Output - Un algorithme doit avoir une ou plusieurs sorties bien définies et doit correspondre à la sortie souhaitée.

  • Finiteness - Les algorithmes doivent se terminer après un nombre fini d'étapes.

  • Feasibility - Doit être réalisable avec les ressources disponibles.

  • Independent - Un algorithme devrait avoir des directions pas à pas, qui devraient être indépendantes de tout code de programmation.

Comment écrire un algorithme?

Il n'y a pas de normes bien définies pour l'écriture d'algorithmes. Il dépend plutôt du problème et des ressources. Les algorithmes ne sont jamais écrits pour prendre en charge un code de programmation particulier.

Comme nous savons que tous les langages de programmation partagent des constructions de code de base comme des boucles (do, for, while), flow-control (if-else), etc. Ces constructions communes peuvent être utilisées pour écrire un algorithme.

Nous écrivons des algorithmes étape par étape, mais ce n'est pas toujours le cas. L'écriture d'algorithme est un processus et est exécutée une fois que le domaine du problème est bien défini. Autrement dit, nous devons connaître le domaine du problème, pour lequel nous concevons une solution.

Exemple

Essayons d'apprendre l'écriture d'algorithmes en utilisant un exemple.

Problem - Concevez un algorithme pour ajouter deux nombres et afficher le résultat.

step 1 − START
step 2 − declare three integers a, b & c
step 3 − define values of a & b
step 4 − add values of a & b
step 5 − store output of step 4 to c
step 6 − print c
step 7 − STOP

Les algorithmes indiquent aux programmeurs comment coder le programme. Alternativement, l'algorithme peut être écrit comme -

step 1 − START ADD
step 2 − get values of a & b
step 3 − c ← a + b
step 4 − display c
step 5 − STOP

Dans la conception et l'analyse d'algorithmes, la deuxième méthode est généralement utilisée pour décrire un algorithme. Cela permet à l'analyste d'analyser facilement l'algorithme en ignorant toutes les définitions indésirables. Il peut observer quelles opérations sont utilisées et comment le processus se déroule.

L'écriture step numbers, est facultatif.

Nous concevons un algorithme pour obtenir une solution à un problème donné. Un problème peut être résolu de plusieurs manières.

Par conséquent, de nombreux algorithmes de solution peuvent être dérivés pour un problème donné. L'étape suivante consiste à analyser les algorithmes de solution proposés et à mettre en œuvre la meilleure solution appropriée.