$$\newcommand{\mtn}{\mathbb{N}}\newcommand{\mtns}{\mathbb{N}^*}\newcommand{\mtz}{\mathbb{Z}}\newcommand{\mtr}{\mathbb{R}}\newcommand{\mtk}{\mathbb{K}}\newcommand{\mtq}{\mathbb{Q}}\newcommand{\mtc}{\mathbb{C}}\newcommand{\mch}{\mathcal{H}}\newcommand{\mcp}{\mathcal{P}}\newcommand{\mcb}{\mathcal{B}}\newcommand{\mcl}{\mathcal{L}} \newcommand{\mcm}{\mathcal{M}}\newcommand{\mcc}{\mathcal{C}} \newcommand{\mcmn}{\mathcal{M}}\newcommand{\mcmnr}{\mathcal{M}_n(\mtr)} \newcommand{\mcmnk}{\mathcal{M}_n(\mtk)}\newcommand{\mcsn}{\mathcal{S}_n} \newcommand{\mcs}{\mathcal{S}}\newcommand{\mcd}{\mathcal{D}} \newcommand{\mcsns}{\mathcal{S}_n^{++}}\newcommand{\glnk}{GL_n(\mtk)} \newcommand{\mnr}{\mathcal{M}_n(\mtr)}\DeclareMathOperator{\ch}{ch} \DeclareMathOperator{\sh}{sh}\DeclareMathOperator{\th}{th} \DeclareMathOperator{\vect}{vect}\DeclareMathOperator{\card}{card} \DeclareMathOperator{\comat}{comat}\DeclareMathOperator{\imv}{Im} \DeclareMathOperator{\rang}{rg}\DeclareMathOperator{\Fr}{Fr} \DeclareMathOperator{\diam}{diam}\DeclareMathOperator{\supp}{supp} \newcommand{\veps}{\varepsilon}\newcommand{\mcu}{\mathcal{U}} \newcommand{\mcun}{\mcu_n}\newcommand{\dis}{\displaystyle} \newcommand{\croouv}{[\![}\newcommand{\crofer}{]\!]} \newcommand{\rab}{\mathcal{R}(a,b)}\newcommand{\pss}[2]{\langle #1,#2\rangle} $$
Bibm@th

Algorithme

  Un algorithme est une succession de règles précises à appliquer en vue de résoudre un problème donné. On peut le voir comme la décortication en étapes mécaniques de la méthode de résolution d'un problème.

  On utilise des algorithmes tous les jours. Par exemple, lorsqu'on recherche un mot dans un dictionnaire, on regarde d'abord la première lettre des mots de la page que l'on consulte et l'on compare cette lettre avec la première lettre du mot que l'on cherche. Suivant les cas, on tourne les pages vers l'avant ou vers l'arrière jusqu'à ce que les premières lettres coïncident. On procède ensuite de la même façon avec la deuxième lettre et ainsi de suite, jusqu'à avoir trouvé le mot.

  L'un des premiers algorithmes que l'on rencontre en mathématiques est l'algorithme d'Euclide : pour calculer le pgcd de a par b, on effectue la division euclidenne de a par b. Si le reste r est nul, alors le pgcd est b. Sinon, on effectue la division euclidienne de b par r. On continue ainsi jusqu'à trouver un reste nul. Le dernier reste non nul est le pgcd de a et b.

  Il existe énormément d'algorithmes en informatique qu'on classe par les problèmes qu'ils abordent (algorithme de tri, algorithme de recherche de motifs,...) ou bien par leur façon de faire (algorithme glouton, algorithme récursif,...).

Le mot algorithme vient du nom du mathématicien persan Al Khwarizmi.