En informatique, un algorithme est une séquence finie d'instructions bien définies et implémentables par ordinateur, généralement destinées à résoudre une classe de problèmes ou à effectuer un calcul. Il s'agit d'une procédure étape par étape qui prend des entrées (données), les traite et produit une sortie (résultat).
Une définition formelle met l’accent sur plusieurs caractéristiques clés :
* Finitude : L'algorithme doit se terminer après un nombre fini d'étapes. Il ne peut pas fonctionner éternellement.
* Définition : Chaque étape doit être définie avec précision; les actions à mener doivent être précisées de manière rigoureuse et sans ambiguïté pour chaque cas. Il ne devrait y avoir aucune place à l’interprétation.
* Entrée : Un algorithme a zéro ou plusieurs entrées (quantités qui lui sont données initialement avant le début de l'algorithme).
* Sortie : Un algorithme a une ou plusieurs sorties (quantités qui ont une relation spécifiée avec les entrées).
* Efficacité : Chaque étape doit être réalisable, c’est-à-dire qu’elle doit pouvoir être réalisée avec précision et dans un laps de temps limité. Les opérations concernées doivent être suffisamment élémentaires pour pouvoir être réalisées en principe avec précision et dans un laps de temps fini.
Essentiellement, un algorithme est une recette ou un ensemble d’instructions permettant de résoudre un problème spécifique. Il ne s'agit pas simplement d'un programme (bien qu'il puisse être implémenté en tant que programme dans un langage de programmation), mais plutôt de la procédure logique sous-jacente qu'incarne le programme. Le même algorithme peut être implémenté dans de nombreux langages de programmation différents.
Par exemple, une recette pour faire un gâteau est analogue à un algorithme. Il spécifie les ingrédients (entrée), les étapes (instructions) et le produit final (sortie). Un algorithme de tri, comme le tri à bulles ou le tri par fusion, est un ensemble précis d'étapes permettant d'organiser une liste d'éléments dans un ordre spécifique.
|