Algorithme
La piste étymologique
- algorithme
« Du nom du mathématicien perse Al-Khwarizmi déformé d’après le grec ancien ἀριθμός, arithmós (« nombre ») » [2]
Note
L’Étymologie nous apprend… qu’il n’y a pas grand chose à tirer de l’étymologie du terme « algorithme ».
Définitions
- algorithme
« Un procédé qui permet de résoudre un problème, mais (…) sans avoir besoin de réfléchir à comment le résoudre. » [1]
- algorithme
« Un algorithme est une suite finie et non ambiguë d’opérations ou d’instructions permettant de résoudre un problème ou d’obtenir un résultat. » [2]
- algorithme
« Un algorithme, c’est tout simplement une façon de décrire dans ses moindres détails comment procéder pour faire quelque chose. Il se trouve que beaucoup d’actions mécaniques, toutes probablement, se prêtent bien à une telle décortication. » [3]
Exemples
Une recette de cuisine
Si je souhaiter cuisiner un plat, je peux le faire en adoptant une posture de recherche et effectuer une suite d’action sans que celles-ci ni leur issue ne soient clairement déterminée à l’avance. Je peux aussi prendre une recette, et suivre les instructions jusqu’à obtenir le résultat. Si les instructions ne sont pas claires, ou si j’adapte la recette, le résultat peut varier.
Une recherche dans le dictionnaire
Je peux lire le premier mot, puis le second, et ainsi de suite jusqu’à trouver mon mot. Cela serait un algorithme possible. Un autre algorithme consisterait à ouvrir le dictionnaire au milieu, à regarder si le mot rechercher s’y trouve, et si non, recommencer avec la moitié pertinente du dictionnaire, et ainsi de suite (pour un maximum théorique de 2^16 itérations pour un dictionnaire d’environ 60000 mots ). [1]
Autres exemples
Vous avez tou·te·s déjà :
suivi les instructions d’un itinéraire
posé une opération simple (les premiers algorithmes concerneraient des opérations pas toujours simples)
suivi les instructions d’un mode d’emploi
Conclusion
Un algorithme est donc une suite d’étapes prédéfinies permettant d’obtenir un résultat.
Notre but en programmant va donc être d’exprimer ces suites d’étapes, à l’intention de la machine, cela dans un langage formel.