Introduction
Algorithme
- Méthode permettant de résoudre un problème de manière systématique.
Les algorithmes ne sont pas spécifiques à l’informatique ; notre cerveau utilise constamment les algorithmes, par exemple :
- Déterminer le chemin le plus rapide pour aller travailler le matin.
- Poser une addition pour calculer la somme de deux nombres.
- Réaliser une tarte aux myrtilles en suivant une recette.
Ce qui distingue un algorithme d’une autre méthode de résolution de problèmes, c’est le caractère systématique de son exécution.
En d’autres termes, un algorithme ne doit demander aucune initiative à celui ou celle qui l’exécute. Ceci explique l’importance de l’algorithmique en informatique : un ordinateur n’étant capable d’aucune initiative, il ne peut exécuter une tâche que si on lui fournit un algorithme pour le faire. Tout programme informatique a donc, par définition, la structure d’un algorithme.
Afin de pouvoir être exécuté de manière systématique, un algorithme doit absolument éviter l’ambiguïté. Il est donc indispensable d’écrire les algorithmes dans un langage formel, dont la sémantique est précisément définie (pseudo code, langage de programmation).
Le caractère systématique ne signifie pas pour autant que l’exécutant de l’algorithme ne doit rien savoir faire a priori. Au contraire, tout algorithme présuppose un certain nombre de capacités.
Dans les exemples ci-dessus :
- Déterminer une chemin suppose de savoir s’orienter dans l’espace.
- Poser une addition suppose de connaître ses tables d’additions.
- Suivre une recette de cuisine suppose de savoir peser, couper, verser les ingrédients.
Les algorithmes pour l’informatique doivent donc s’appuyer sur ce que « sait faire » l’ordinateur.
En pratique, ces capacités dépendent de l’environnement et du langage de programmation utilisé.