vignette|Organigramme de programmation représentant l'algorithme d'Euclide.
Lalgorithmique est l'étude et la production de règles et techniques qui sont impliquées dans la définition et la conception d'algorithmes, c'est-à-dire de processus systématiques de résolution d'un problème permettant de décrire précisément des étapes pour résoudre un problème algorithmique.
Le mot « algorithme » vient du nom du mathématicien Al-Khwârizmî (latinisé au Moyen Âge en Algoritmi), qui, au écrivit le premier ouvrage systématique donnant des solutions aux équations linéaires et quadratiques. Le h muet, non justifié par l'étymologie, vient d’une déformation par rapprochement avec le grec ἀριθμός (arithmós). « Algorithme » a donné « algorithmique ». Le synonyme « algorithmie », vieux mot utilisé par exemple par Wronski en 1811, est encore parfois utilisé.
Les premiers algorithmes dont on a retrouvé des descriptions datent des Babyloniens, au III. Ils décrivent des méthodes de calcul et des résolutions d'équations à l'aide d'exemples.
Un algorithme célèbre est celui qui se trouve dans le des Éléments d'Euclide, et appelé algorithme d'Euclide. Il permet de trouver le plus grand diviseur commun, ou PGCD, de deux nombres. Un point particulièrement remarquable est qu’il contient explicitement une itération et que les et 2 démontrent sa correction.
C'est Archimède qui proposa le premier un algorithme pour le calcul de π.
Le premier à avoir systématisé des algorithmes est le mathématicien perse Al-Khwârizmî, actif entre 813 et 833. Dans son ouvrage Abrégé du calcul par la restauration et la comparaison, il étudie toutes les équations du second degré et en donne la résolution par des algorithmes généraux. Il utilise des méthodes semblables à celles des Babyloniens, mais se différencie par ses explications systématiques là où les Babyloniens donnaient seulement des exemples.
Le savant andalou Averroès (1126-1198) évoque une méthode de raisonnement où la thèse s’affine étape par étape, itérativement, jusqu’à une certaine convergence et ceci conformément au déroulement d’un algorithme.