En arabe, c'est là que l'on peut trouver l'origine étymologique du terme algorithme que nous allons maintenant analyser en profondeur. Plus exactement, on la retrouve au nom du mathématicien Al-Khwarizmi, né au Moyen Âge dans l'une des régions de ce que l'on appelle aujourd'hui l'Ouzbiekistan, en Asie centrale.
C'est à Bagdad qu'il développa une grande partie de sa carrière et c'est à ce moment-là qu'il s'y installa pour, sur ordre du calife, créer un centre supérieur de recherche scientifique qui s'appelait la Maison de la Sagesse. Divers traités d'algèbre ou d'astronomie faisaient partie des travaux réalisés par ledit sage, ce qui a également conduit à la création d'une autre série de termes scientifiques tels que l'algèbre ou les figures.
Telle était l'importance de ce personnage historique qu'il est actuellement considéré non seulement comme le père de l'algèbre mais aussi comme celui qui était en charge de l'introduction de notre système de numérotation.
Un algorithme est appelé un groupe fini d'opérations organisées de manière logique et ordonnée qui permet de résoudre un certain problème. C'est une série d'instructions ou de règles établies qui, par une succession d'étapes, nous permettent d'arriver à un résultat ou à une solution.
Selon les experts en mathématiques, les algorithmes nous permettent de travailler à partir d'un état de base ou initial et, après avoir suivi les étapes proposées, d'arriver à une solution. Il est à noter que, bien que les algorithmes soient généralement associés au champ mathématique (puisqu'ils permettent, de nommer des cas spécifiques, de connaître le quotient entre une paire de chiffres ou de déterminer quel est le plus grand diviseur commun entre deux chiffres appartenant au groupe des entiers), bien qu'ils n'impliquent pas toujours la présence de nombres.
En plus de tout ce qui précède, dans le domaine mathématique, et lorsque nous sommes déterminés à réaliser la description de l'un de ces algorithmes, il faut tenir compte du fait qu'elle peut être réalisée à travers trois niveaux. Ainsi, tout d'abord, nous rencontrons le haut niveau, qui est la description formelle et enfin la tâche de mise en œuvre.
De même, nous ne pouvons pas ignorer que les algorithmes peuvent être exprimés à travers des langages de programmation, un pseudocode, un langage naturel et aussi à travers ce que l'on appelle des diagrammes de flux.
Un manuel d'instructions pour le fonctionnement d'un appareil électroménager et une série d'ordres du patron à un employé pour effectuer une certaine tâche peuvent également inclure des algorithmes.
Cette largeur de sens nous permet d'apprécier qu'il n'y a pas de définition formelle et unique d'un algorithme. Le terme est généralement désigné comme le nombre fixe d'étapes nécessaires pour transformer les informations d'entrée (un problème) en une sortie (sa solution). Cependant, certains algorithmes n'ont pas de fin ou ne résolvent pas un problème particulier.
Il existe certaines propriétés qui s'appliquent à tous les algorithmes, à l'exception des algorithmes dits parallèles: temps séquentiel (les algorithmes fonctionnent pas à pas), état abstrait (chaque algorithme est indépendant de sa mise en œuvre) et exploration bornée (la transition entre est déterminé par une description finie et fixe).
Enfin, il convient de mentionner que les algorithmes sont très importants en informatique car ils permettent de représenter les données sous forme de séquences de bits. Un programme est un algorithme qui indique à l' ordinateur les étapes spécifiques à suivre pour effectuer une tâche.