ALGORITHMES

Un algorithme est défini comme une séquence d'instructions interprétables de façon unique, capable de résoudre un problème conduisant au résultat souhaité dans un temps limité.
Un algorithme doit avoir les propriétés suivantes :
- Généralité : il doit résoudre une classe de problèmes et non un seul problème.
- Finitude : les instructions qui le composent et le nombre d'actions à effectuer doivent être un nombre fini.
- Complétude : il doit couvrir tous les cas possibles qui peuvent se présenter concernant un problème.
- Non-ambiguïté : chaque instruction doit être définie avec précision et sans ambiguïté.
- Exécutabilité : il doit être possible de l'exécuter en un temps limité.
Un algorithme sera dit "correct" si, étant donné un problème, l'algorithme est capable de le résoudre. Un algorithme sera dit "efficace" si, en plus de résoudre le problème, l'algorithme sera capable de fournir la solution en un temps court.
Les algorithmes se subdivisent en :
- déterministes : lorsque, étant donné les mêmes données d'entrée, pour chaque instruction, il n'y a qu'une seule étape suivante, comme s'il n'y avait qu'un seul chemin possible.
- non déterministes : lorsque, à données d'entrée égales, il existe au moins une instruction qui admet différentes étapes ultérieures.
Un algorithme peut être exprimé de manière schématique. Dans ce cas, on l'appellera un organigramme.