



Algorithmique — Wikipédia



































[Aller au contenu](#bodyContent)







Menu principal





Menu principal
déplacer vers la barre latérale
masquer



 Navigation
 

* [Accueil](/wiki/Wikip%C3%A9dia:Accueil_principal "Accueil général [z]")
* [Portails thématiques](/wiki/Portail:Accueil)
* [Article au hasard](/wiki/Sp%C3%A9cial:Page_au_hasard "Affiche un article au hasard [x]")
* [Contact](/wiki/Wikip%C3%A9dia:Contact)






 Contribuer
 

* [Débuter sur Wikipédia](/wiki/Aide:D%C3%A9buter)
* [Aide](/wiki/Aide:Accueil "Accès à l’aide")
* [Communauté](/wiki/Wikip%C3%A9dia:Accueil_de_la_communaut%C3%A9 "À propos du projet, ce que vous pouvez faire, où trouver les informations")
* [Modifications récentes](/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes "Liste des modifications récentes sur le wiki [r]")
* [Faire un don](//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_fr.wikipedia.org&uselang=fr "Soutenez-nous")









[![](/static/images/icons/wikipedia.png)

![Wikipédia](/static/images/mobile/copyright/wikipedia-wordmark-fr.svg)
![l'encyclopédie libre](/static/images/mobile/copyright/wikipedia-tagline-fr.svg)](/wiki/Wikip%C3%A9dia:Accueil_principal)



[Rechercher](/wiki/Sp%C3%A9cial:Recherche "Rechercher sur Wikipédia [f]")










Rechercher






















Apparence















* [Créer un compte](/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&returnto=Algorithmique "Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire.")
* [Se connecter](/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Algorithmique "Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]")








Outils personnels




* [Créer un compte](/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&returnto=Algorithmique "Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire.")
* [Se connecter](/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Algorithmique "Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]")






 Pages pour les contributeurs déconnectés [en savoir plus](/wiki/Aide:Introduction)


* [Contributions](/wiki/Sp%C3%A9cial:Mes_contributions "Une liste des modifications effectuées depuis cette adresse IP [y]")
* [Discussion](/wiki/Sp%C3%A9cial:Mes_discussions "La page de discussion pour les contributions depuis cette adresse IP [n]")





























## Sommaire


déplacer vers la barre latérale
masquer

* [Début](#)
* [1
Étymologie](#Étymologie)
* [2
Histoire](#Histoire)


Afficher / masquer la sous\-section Histoire

	+ [2\.1
	Antiquité](#Antiquité)
	+ [2\.2
	Étude systématique](#Étude_systématique)
	+ [2\.3
	L'époque contemporaine](#L'époque_contemporaine)
* [3
Vocabulaire](#Vocabulaire)
* [4
Étude formelle](#Étude_formelle)


Afficher / masquer la sous\-section Étude formelle

	+ [4\.1
	Structures algorithmiques](#Structures_algorithmiques)
	+ [4\.2
	Correction, complétude, terminaison](#Correction,_complétude,_terminaison)
	+ [4\.3
	Complexité algorithmique](#Complexité_algorithmique)
		- [4\.3\.1
		Quelques indications sur l’efficacité des algorithmes et ses biais](#Quelques_indications_sur_l’efficacité_des_algorithmes_et_ses_biais)
* [5
Approches pratiques](#Approches_pratiques)


Afficher / masquer la sous\-section Approches pratiques

	+ [5\.1
	Les heuristiques](#Les_heuristiques)
* [6
Exemples d’algorithmes, de problèmes, d'applications ou domaines d'application](#Exemples_d’algorithmes,_de_problèmes,_d'applications_ou_domaines_d'application)
* [7
Annexes](#Annexes)


Afficher / masquer la sous\-section Annexes

	+ [7\.1
	Notes et références](#Notes_et_références)
	+ [7\.2
	Bibliographie](#Bibliographie)
	+ [7\.3
	Articles connexes](#Articles_connexes)
	+ [7\.4
	Liens externes](#Liens_externes)














Basculer la table des matières







# Algorithmique





6 langues



* [العربية](https://ar.wikipedia.org/wiki/%D8%B9%D9%84%D9%85_%D8%A7%D9%84%D8%AE%D9%88%D8%A7%D8%B1%D8%B2%D9%85%D9%8A%D8%A7%D8%AA "علم الخوارزميات – arabe")
* [English](https://en.wikipedia.org/wiki/Algorithmics "Algorithmics – anglais")
* [فارسی](https://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85%E2%80%8C%D8%B4%D9%86%D8%A7%D8%B3%DB%8C "الگوریتم‌شناسی – persan")
* [मराठी](https://mr.wikipedia.org/wiki/%E0%A4%95%E0%A5%83%E0%A4%A4%E0%A4%BF%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A4%AE%E0%A4%BE%E0%A4%AD%E0%A5%8D%E0%A4%AF%E0%A4%BE%E0%A4%B8 "कृतिक्रमाभ्यास – marathi")
* [Polski](https://pl.wikipedia.org/wiki/Algorytmika "Algorytmika – polonais")
* [Українська](https://uk.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%96%D0%BA%D0%B0 "Алгоритміка – ukrainien")


[Modifier les liens](https://www.wikidata.org/wiki/Special:EntityPage/Q13636890#sitelinks-wikipedia "Modifier les liens interlangues")










* [Article](/wiki/Algorithmique "Voir le contenu de la page [c]")
* [Discussion](/wiki/Discussion:Algorithmique "Discussion au sujet de cette page de contenu [t]")






français
















* [Lire](/wiki/Algorithmique)
* [Modifier](/w/index.php?title=Algorithmique&veaction=edit "Modifier cette page [v]")
* [Modifier le code](/w/index.php?title=Algorithmique&action=edit "Modifier le wikicode de cette page [e]")
* [Voir l’historique](/w/index.php?title=Algorithmique&action=history "Historique des versions de cette page [h]")








Outils





Outils
déplacer vers la barre latérale
masquer



 Actions
 

* [Lire](/wiki/Algorithmique)
* [Modifier](/w/index.php?title=Algorithmique&veaction=edit "Modifier cette page [v]")
* [Modifier le code](/w/index.php?title=Algorithmique&action=edit "Modifier le wikicode de cette page [e]")
* [Voir l’historique](/w/index.php?title=Algorithmique&action=history)






 Général
 

* [Pages liées](/wiki/Sp%C3%A9cial:Pages_li%C3%A9es/Algorithmique "Liste des pages liées qui pointent sur celle-ci [j]")
* [Suivi des pages liées](/wiki/Sp%C3%A9cial:Suivi_des_liens/Algorithmique "Liste des modifications récentes des pages appelées par celle-ci [k]")
* [Téléverser un fichier](/wiki/Aide:Importer_un_fichier "Téléverser des fichiers [u]")
* [Pages spéciales](/wiki/Sp%C3%A9cial:Pages_sp%C3%A9ciales "Liste de toutes les pages spéciales [q]")
* [Lien permanent](/w/index.php?title=Algorithmique&oldid=213998310 "Adresse permanente de cette version de cette page")
* [Informations sur la page](/w/index.php?title=Algorithmique&action=info "Davantage d’informations sur cette page")
* [Citer cette page](/w/index.php?title=Sp%C3%A9cial:Citer&page=Algorithmique&id=213998310&wpFormIdentifier=titleform "Informations sur la manière de citer cette page")
* [Obtenir l'URL raccourcie](/w/index.php?title=Sp%C3%A9cial:UrlShortener&url=https%3A%2F%2Ffr.wikipedia.org%2Fwiki%2FAlgorithmique)
* [Télécharger le code QR](/w/index.php?title=Sp%C3%A9cial:QrCode&url=https%3A%2F%2Ffr.wikipedia.org%2Fwiki%2FAlgorithmique)
* [Élément Wikidata](https://www.wikidata.org/wiki/Special:EntityPage/Q13636890 "Lien vers l’élément dans le dépôt de données connecté [g]")






 Imprimer / exporter
 

* [Créer un livre](/w/index.php?title=Sp%C3%A9cial:Livre&bookcmd=book_creator&referer=Algorithmique)
* [Télécharger comme PDF](/w/index.php?title=Sp%C3%A9cial:DownloadAsPdf&page=Algorithmique&action=show-download-screen)
* [Version imprimable](/w/index.php?title=Algorithmique&printable=yes "Version imprimable de cette page [p]")






 Dans d’autres projets
 

* [Wikimedia Commons](https://commons.wikimedia.org/wiki/Category:Algorithms_and_data_structures)
* [Wikilivres](https://fr.wikibooks.org/wiki/Algorithmique)






















Apparence
déplacer vers la barre latérale
masquer










Un article de Wikipédia, l'encyclopédie libre.


[![](//upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Euclid_flowchart_1.png/220px-Euclid_flowchart_1.png)](/wiki/Fichier:Euclid_flowchart_1.png)

[Organigramme de programmation](/wiki/Organigramme_de_programmation "Organigramme de programmation") représentant l'[algorithme d'Euclide](/wiki/Algorithme_d%27Euclide "Algorithme d'Euclide").


L'**algorithmique** est l'étude et la production de règles et techniques qui sont impliquées dans la définition et la conception d'[algorithmes](/wiki/Algorithme "Algorithme"), 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](/wiki/Probl%C3%A8me_algorithmique "Problème algorithmique").




## Étymologie

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=1 "Modifier la section : Étymologie") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=1 "Modifier le code source de la section : Étymologie")]
Le mot « algorithme » vient du nom du [mathématicien](/wiki/Math%C3%A9maticien "Mathématicien") [Al\-Khwârizmî](/wiki/Al-Khw%C3%A2rizm%C3%AE "Al-Khwârizmî")[\[1]](#cite_note-1) (latinisé au [Moyen Âge](/wiki/Moyen_%C3%82ge "Moyen Âge") en *Algoritmi*), qui, au [IXe siècle](/wiki/IXe_si%C3%A8cle "IXe siècle") écrivit [le premier ouvrage systématique](/wiki/Abr%C3%A9g%C3%A9_du_calcul_par_la_restauration_et_la_comparaison "Abrégé du calcul par la restauration et la comparaison") donnant des solutions aux [équations linéaires](/wiki/%C3%89quation_lin%C3%A9aire "Équation linéaire") et [quadratiques](/wiki/%C3%89quation_du_second_degr%C3%A9 "Équation du second degré"). Le h muet, non justifié par l'étymologie, vient d’une déformation par rapprochement avec le grec ἀριθμός (arithmós)[\[2]](#cite_note-2). « Algorithme » a donné « algorithmique ». Le synonyme « algorithmie », vieux mot utilisé par exemple par [Wronski](/wiki/Josef_Ho%C3%ABn%C3%A9-Wronski "Josef Hoëné-Wronski") en 1811[\[3]](#cite_note-3), est encore parfois utilisé[\[4]](#cite_note-4).



## Histoire

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=2 "Modifier la section : Histoire") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=2 "Modifier le code source de la section : Histoire")]
[![](//upload.wikimedia.org/wikipedia/commons/thumb/5/54/Cuneiform_tablet-_fragment_of_a_mathematical_problem_text_MET_ME86_11_404.jpg/220px-Cuneiform_tablet-_fragment_of_a_mathematical_problem_text_MET_ME86_11_404.jpg)](/wiki/Fichier:Cuneiform_tablet-_fragment_of_a_mathematical_problem_text_MET_ME86_11_404.jpg)

Fragment d'une tablette cunéiforme avec un problème algorithmique. MET ME86 11 404


### Antiquité

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=3 "Modifier la section : Antiquité") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=3 "Modifier le code source de la section : Antiquité")]
Les premiers algorithmes dont on a retrouvé des descriptions datent des [Babyloniens](/wiki/Babylone "Babylone"), au [IIIe millénaire av. J.\-C.](/wiki/IIIe_mill%C3%A9naire_av._J.-C. "IIIe millénaire av. J.-C."). Ils décrivent des méthodes de [calcul](/wiki/Calcul_(math%C3%A9matiques) "Calcul (mathématiques)") et des résolutions d'[équations](/wiki/%C3%89quation "Équation") à l'aide d'exemples[\[5]](#cite_note-5),[\[6]](#cite_note-6).


Un algorithme célèbre est celui qui se trouve dans le livre 7 des *[Éléments d'Euclide](/wiki/Algorithme_d%27Euclide "Algorithme d'Euclide")*, et appelé [algorithme d'Euclide](/wiki/Algorithme_d%27Euclide "Algorithme d'Euclide"). Il permet de trouver le plus grand diviseur commun, ou [PGCD](/wiki/Plus_grand_commun_diviseur "Plus grand commun diviseur"), de deux nombres. Un point particulièrement remarquable est qu’il contient explicitement une [itération](/wiki/It%C3%A9ration "Itération") et que les propositions 1 et 2 démontrent sa [correction](/wiki/Correction_d%27un_algorithme "Correction d'un algorithme").


C'est [Archimède](/wiki/Archim%C3%A8de "Archimède") qui proposa le premier un algorithme pour le calcul de [π](/wiki/Pi "Pi")[\[7]](#cite_note-7).



### Étude systématique

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=4 "Modifier la section : Étude systématique") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=4 "Modifier le code source de la section : Étude systématique")]
Le premier à avoir systématisé des algorithmes est le mathématicien [perse](/wiki/Persans "Persans") [Al\-Khwârizmî](/wiki/Al-Khw%C3%A2rizm%C3%AE "Al-Khwârizmî"), actif entre 813 et 833\. Dans son ouvrage *[Abrégé du calcul par la restauration et la comparaison](/wiki/Abr%C3%A9g%C3%A9_du_calcul_par_la_restauration_et_la_comparaison "Abrégé du calcul par la restauration et la comparaison")*, il étudie toutes les [équations du second degré](/wiki/%C3%89quation_du_second_degr%C3%A9 "Équation du second degré") et en donne la résolution par des algorithmes généraux. Il utilise des méthodes semblables à celles des [Babyloniens](/wiki/Math%C3%A9matiques_babyloniennes "Mathématiques babyloniennes"), mais se différencie par ses explications systématiques là où les Babyloniens donnaient seulement des exemples.


Le savant [andalou](/wiki/Al-Andalus "Al-Andalus") [Averroès](/wiki/Averro%C3%A8s "Averroès") ([1126](/wiki/1126 "1126")\-[1198](/wiki/1198 "1198")) évoque une méthode de [raisonnement](/wiki/Raisonnement "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. À la même époque, au [XIIe siècle](/wiki/XIIe_si%C3%A8cle "XIIe siècle"), le moine [Adelard de Bath](/wiki/Adelard_de_Bath "Adelard de Bath") introduit le terme [latin](/wiki/Latin "Latin") de *algorismus*, par référence au nom de Al Khuwarizmi. Ce mot donne *algorithme* en français en [1554](/wiki/1554 "1554").


Au [XVIIe siècle](/wiki/XVIIe_si%C3%A8cle "XVIIe siècle"), on pourrait entrevoir une certaine allusion à la méthode algorithmique chez [René Descartes](/wiki/Ren%C3%A9_Descartes "René Descartes") dans la méthode générale proposée par le [Discours de la méthode](/wiki/Discours_de_la_m%C3%A9thode "Discours de la méthode") ([1637](/wiki/1637 "1637")), notamment quand, en sa deuxième partie, le mathématicien français propose de « diviser chacune des difficultés que j’examinerois, en autant de parcelles qu’il se pourroit, et qu’il seroit requis pour les mieux résoudre ». Sans évoquer explicitement les concepts de boucle, d’itération ou de [dichotomie](/wiki/Recherche_dichotomique "Recherche dichotomique"), l’approche de Descartes prédispose la logique à accueillir le concept de [programme](/wiki/Programme_informatique "Programme informatique"), mot qui naît en français en [1677](/wiki/1677 "1677").


En 1843 , la mathématicienne et pionnière des [sciences informatique](/wiki/Informatique "Informatique") [Ada Lovelace](/wiki/Ada_Lovelace "Ada Lovelace"), fille de [Lord Byron](/wiki/Lord_Byron "Lord Byron") et assistante de [Charles Babbage](/wiki/Charles_Babbage "Charles Babbage") réalise la première [implémentation](/wiki/Mise_en_%C5%93uvre "Mise en œuvre") d'un algorithme sous forme de programme (calcul des [nombres de Bernoulli](/wiki/Nombre_de_Bernoulli "Nombre de Bernoulli"))[\[8]](#cite_note-8).


Le [dixième problème de Hilbert](/wiki/Dixi%C3%A8me_probl%C3%A8me_de_Hilbert "Dixième problème de Hilbert") qui fait partie de la liste des 23 [problèmes](/wiki/Probl%C3%A8mes_de_Hilbert "Problèmes de Hilbert") posés par [David Hilbert](/wiki/David_Hilbert "David Hilbert") en 1900 à Paris est clairement un problème algorithmique. En l'occurrence, la réponse est qu'il n'y a pas d'algorithme répondant au problème posé.



### L'époque contemporaine

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=5 "Modifier la section : L'époque contemporaine") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=5 "Modifier le code source de la section : L'époque contemporaine")]
L’algorithmique des XXe et XXIe siècles a pour fondement mathématique des formalismes, par exemple celui des [machines de Turing](/wiki/Machines_de_Turing "Machines de Turing"), qui permettent de définir précisément ce qu'on entend par « étapes », par « précis » et par « non ambigu » et qui donnent un cadre scientifique pour étudier les propriétés des algorithmes. Cependant, suivant le formalisme choisi on obtient des approches algorithmiques différentes pour résoudre un même problème. Par exemple l'[algorithmique récursive](/wiki/Algorithme_r%C3%A9cursif "Algorithme récursif"), l'[algorithmique parallèle](/wiki/Algorithme_parall%C3%A8le "Algorithme parallèle") ou l’[informatique quantique](/wiki/Informatique_quantique "Informatique quantique") donnent lieu à des présentations d'algorithmes différentes de celles de l'algorithmique itérative.


L'algorithmique s'est surtout développée dans la deuxième moitié du XXe siècle, comme support conceptuel de la programmation des ordinateurs, dans le cadre du développement de l'informatique pendant cette période. [Donald Knuth](/wiki/Donald_Knuth "Donald Knuth"), auteur du traité *[The Art of Computer Programming](/wiki/The_Art_of_Computer_Programming "The Art of Computer Programming")* qui décrit de très nombreux algorithmes, a contribué, avec d'autres, à poser les fondements mathématiques de leur analyse.



## Vocabulaire

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=6 "Modifier la section : Vocabulaire") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=6 "Modifier le code source de la section : Vocabulaire")]
Le substantif *algorithmique* désigne l'ensemble des méthodes permettant de créer des algorithmes. Le terme est également employé comme adjectif.


Un *algorithme* énonce une solution à un problème sous la forme d’un enchaînement d’*opérations à effectuer*.


Les informaticiens utilisent fréquemment l’anglicisme *implémentation* pour désigner la mise en œuvre de l'algorithme dans un [langage de programmation](/wiki/Langage_de_programmation "Langage de programmation"). Cette implémentation réalise la transcription des opérations constitutives de l’algorithme et précise la façon dont ces opérations sont invoquées. Cette écriture en langage informatique, est aussi fréquemment désignée par le terme de « *[codage](/wiki/Codage_(programmation) "Codage (programmation)")* »[\[9]](#cite_note-9). On parle de *« [code source](/wiki/Code_source "Code source") »* pour désigner le texte, constituant le programme, réalisant l’algorithme. Le *code* est plus ou moins détaillé selon le niveau d’abstraction du langage utilisé, de même qu'une recette de cuisine doit être plus ou moins détaillée selon l’expérience du cuisinier.



## Étude formelle

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=7 "Modifier la section : Étude formelle") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=7 "Modifier le code source de la section : Étude formelle")]
De nombreux outils formels ou théoriques ont été développés pour décrire les algorithmes, les étudier, exprimer leurs qualités, pouvoir les comparer :



* ainsi, pour décrire les algorithmes, des structures algorithmiques ont été mises en évidence : structures de contrôle et structures de données ;
* pour justifier de la qualité des algorithmes, les notions de correction, de [complétude](/wiki/Complet_(complexit%C3%A9) "Complet (complexité)") et de terminaison ont été mises en place ;
* enfin, pour comparer les algorithmes, une [théorie de la complexité](/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_(informatique_th%C3%A9orique) "Théorie de la complexité (informatique théorique)") des algorithmes a été définie.


### Structures algorithmiques

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=8 "Modifier la section : Structures algorithmiques") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=8 "Modifier le code source de la section : Structures algorithmiques")]
Les concepts en œuvre en algorithmique, par exemple selon l'approche de [N. Wirth](/wiki/Niklaus_Wirth "Niklaus Wirth") pour les langages les plus répandus ([Pascal](/wiki/Pascal_(langage) "Pascal (langage)"), [C](/wiki/C_(langage) "C (langage)"), etc.), sont en petit nombre. Ils appartiennent à deux classes :



* les [structures de contrôle](/wiki/Structure_de_contr%C3%B4le "Structure de contrôle") :
	+ séquences,
	+ conditionnelles,
	+ boucles ;
* les [structures de données](/wiki/Structure_de_donn%C3%A9es "Structure de données") :
	+ [constantes](/wiki/Constante "Constante"),
	+ [variables](/wiki/Variable_(informatique) "Variable (informatique)"),
	+ [tableaux](/wiki/Tableau_(structure_de_donn%C3%A9es) "Tableau (structure de données)") ;
	+ structures récursives (listes, arbres, graphes).


Ce découpage est parfois difficile à percevoir pour certains langages ([Lisp](/wiki/Lisp_(langage) "Lisp (langage)"), [Prolog](/wiki/Prolog "Prolog")…) plus basés sur la notion de [récursivité](/wiki/Algorithme_r%C3%A9cursif "Algorithme récursif") où certaines structures de contrôle sont implicites et, donc, semblent disparaître.



### Correction, complétude, terminaison

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=9 "Modifier la section : Correction, complétude, terminaison") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=9 "Modifier le code source de la section : Correction, complétude, terminaison")]
Ces trois notions « correction », « complétude », « terminaison » sont liées, et supposent qu'un algorithme est écrit pour résoudre un problème.


La [terminaison](/wiki/Terminaison_d%27un_algorithme "Terminaison d'un algorithme") est l'assurance que l'algorithme terminera en un temps fini. Les preuves de terminaison font habituellement intervenir une fonction entière positive strictement décroissante à chaque « pas » de l'algorithme.


Étant donné la garantie qu'un algorithme terminera, la preuve de correction doit apporter l'assurance que si l'algorithme termine en donnant un résultat, alors ce résultat est effectivement une solution au problème posé. Les preuves de correction font habituellement intervenir une spécification logique que doivent vérifier les solutions du problème. La preuve de correction consiste donc à montrer que les résultats de l'algorithme vérifient cette spécification.


La preuve de complétude garantit que, pour un espace de problèmes donné, l'algorithme, s'il termine, donnera l'ensemble des solutions de l'espace du problème. Les preuves de complétude demandent à identifier l'espace du problème et l'espace des solutions pour ensuite montrer que l'algorithme produit bien le second à partir du premier.



### Complexité algorithmique

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=10 "Modifier la section : Complexité algorithmique") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=10 "Modifier le code source de la section : Complexité algorithmique")]
Article détaillé : [Théorie de la complexité des algorithmes](/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_des_algorithmes "Théorie de la complexité des algorithmes").
Les principales notions mathématiques dans le calcul du coût d’un algorithme précis sont les [notions de domination](/wiki/Notation_de_Landau "Notation de Landau") (notée *O(f(n))*, « grand o »), où *f* est une [fonction mathématique](/wiki/Fonction_math%C3%A9matique "Fonction mathématique") de *n*, variable désignant la quantité d’informations (en [bits](/wiki/Bit "Bit"), en nombre d’enregistrements, etc.) manipulée dans l’algorithme. En algorithmique on trouve souvent des complexités du type :





| Notation | Type de complexité |
| --- | --- |
| O ( 1 )   {\\displaystyle O(1\)}  {\displaystyle O(1)} | complexité constante (indépendante de la taille de la donnée) |
| O ( log ⁡ ( n ) )   {\\displaystyle O(\\log(n))}  {\displaystyle O(\log(n))} | complexité logarithmique |
| O ( n )   {\\displaystyle O(n)}  {\displaystyle O(n)} | complexité linéaire |
| O ( n log ⁡ ( n ) )   {\\displaystyle O(n\\log(n))}  {\displaystyle O(n\log(n))} | complexité quasi linéaire |
| O (  n  2   )   {\\displaystyle O(n^{2})}  {\displaystyle O(n^{2})} | complexité quadratique |
| O (  n  3   )   {\\displaystyle O(n^{3})}  {\displaystyle O(n^{3})} | complexité cubique |
| O (  n  p   )   {\\displaystyle O(n^{p})}  {\displaystyle O(n^{p})} | complexité polynomiale |
| O (  n  log ⁡ ( n )   )   {\\displaystyle O(n^{\\log(n)})}  {\displaystyle O(n^{\log(n)})} | complexité quasi polynomiale |
| O (  2  n   )   {\\displaystyle O(2^{n})}  {\displaystyle O(2^{n})} | complexité exponentielle |
| O ( n ! )   {\\displaystyle O(n!)}  {\displaystyle O(n!)} | complexité factorielle |


Sans entrer dans les détails mathématiques, le calcul de l’efficacité d’un algorithme (sa *[complexité algorithmique](/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_(informatique_th%C3%A9orique) "Théorie de la complexité (informatique théorique)")*) consiste en la recherche de deux quantités importantes. La première quantité est l’évolution du nombre d’instructions de base en fonction de la quantité de données à traiter (par exemple, pour un [algorithme de tri](/wiki/Algorithme_de_tri "Algorithme de tri"), il s'agit du nombre de données à trier), que l’on privilégiera sur le temps d'exécution mesuré en secondes (car ce dernier dépend de la machine sur laquelle l'algorithme s'exécute). La seconde quantité estimée est la quantité de mémoire nécessaire pour effectuer les calculs. Baser le calcul de la complexité d’un algorithme sur le temps ou la quantité effective de mémoire qu’un ordinateur particulier prend pour effectuer ledit algorithme ne permet pas de prendre en compte la structure interne de l’algorithme, ni la particularité de l’ordinateur : selon sa charge de travail, la vitesse de son processeur, la vitesse d’accès aux données, l’exécution de l’algorithme (qui peut faire intervenir le hasard) ou son organisation de la mémoire, le temps d’exécution et la quantité de mémoire ne seront pas les mêmes.


Souvent, on examine les performances « au pire », c'est\-à\-dire dans les configurations telles que le [temps d'exécution](/wiki/Complexit%C3%A9_en_temps "Complexité en temps") ou l'[espace mémoire](/wiki/Complexit%C3%A9_en_espace "Complexité en espace") est le plus grand. Il existe également un autre aspect de l'évaluation de l'efficacité d'un algorithme : les performances « en moyenne ». Cela suppose d'avoir un modèle de la répartition statistique des données de l'algorithme, tandis que la mise en œuvre des techniques d'analyse implique des méthodes assez fines de [combinatoire](/wiki/Analyse_combinatoire "Analyse combinatoire") et d'[évaluation asymptotique](/wiki/D%C3%A9veloppement_asymptotique "Développement asymptotique"), utilisant en particulier les [séries génératrices](/wiki/S%C3%A9rie_g%C3%A9n%C3%A9ratrice "Série génératrice") et des méthodes avancées d'[analyse complexe](/wiki/Analyse_complexe "Analyse complexe"). L'ensemble de ces méthodes est regroupé sous le nom de [combinatoire analytique](/wiki/Combinatoire_analytique "Combinatoire analytique").


On trouvera dans l’article sur la [théorie de la complexité des algorithmes](/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_des_algorithmes "Théorie de la complexité des algorithmes") d’autres évaluations de la complexité qui vont en général au\-delà des valeurs proposées ci\-dessus et qui classifient les problèmes algorithmiques (plutôt que les algorithmes) en classes de complexité.



#### Quelques indications sur l’efficacité des algorithmes et ses biais

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=11 "Modifier la section : Quelques indications sur l’efficacité des algorithmes et ses biais") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=11 "Modifier le code source de la section : Quelques indications sur l’efficacité des algorithmes et ses biais")]
L'efficacité algorithmique n’est souvent connue que de manière asymptotique, c’est\-à\-dire pour de grandes valeurs du paramètre *n*. Lorsque ce paramètre est suffisamment petit, un algorithme de complexité asymptotique plus grande peut en pratique être plus efficace. Ainsi, pour trier un tableau de 30 lignes (c’est un paramètre de petite taille), il est inutile d’utiliser un algorithme évolué comme le [tri rapide](/wiki/Tri_rapide "Tri rapide") (l’un des algorithmes de tri asymptotiquement les plus efficaces en moyenne) : l’algorithme de tri le plus simple à écrire sera suffisamment efficace.


Entre deux algorithmes informatiques de complexité identique, on utilisera celui dont l’occupation mémoire est moindre. L’analyse de la complexité algorithmique peut également servir à évaluer l’occupation mémoire d’un algorithme. Enfin, le choix d’un algorithme plutôt qu’un autre doit se faire en fonction des données que l’on s’attend à lui fournir en entrée. Ainsi, le [tri rapide](/wiki/Tri_rapide "Tri rapide"), lorsque l’on choisit le premier élément comme pivot, se comporte de façon désastreuse si on l’applique à une liste de valeurs déjà triée. Il n’est donc pas judicieux de l’utiliser si on prévoit que le programme recevra en entrée des listes déjà presque triées ou alors il faudra choisir le pivot aléatoirement.


D'autres paramètres à prendre en compte sont notamment :



* les [biais](/wiki/Biais_(statistique) "Biais (statistique)") intrinsèques (acceptés ou involontaires) de nombreux algorithmes peuvent tromper les utilisateurs ou systèmes d'[intelligence artificielle](/wiki/Intelligence_artificielle "Intelligence artificielle"), de *[machine learning](/wiki/Machine_learning "Machine learning")*, de diagnostic informatique, mécanique, [médical](/wiki/Diagnostic_m%C3%A9dical "Diagnostic médical"), de prévision, de prévention, de sondages ou d'[aide à la décision](/wiki/Aide_%C3%A0_la_d%C3%A9cision "Aide à la décision") (notamment pour les [réseaux sociaux](/wiki/R%C3%A9seaux_sociaux "Réseaux sociaux"), l'éducation \[ex : [parcoursup](/wiki/Parcoursup "Parcoursup") ], la médecine, la justice, la police, l'armée, la politique, l'embauche…) prenant mal en compte ou pas du tous ces biais[\[10]](#cite_note-hertel2019-10). En 2019, des chercheurs de [Télécom ParisTech](/wiki/T%C3%A9l%C3%A9com_ParisTech "Télécom ParisTech") ont produit un rapport inventoriant les principaux biais connus, et quelques pistes de remédiation[\[10]](#cite_note-hertel2019-10)
* la [localité](/wiki/M%C3%A9moire_virtuelle#Principe_de_localité "Mémoire virtuelle") de l’algorithme. Par exemple pour un système à [mémoire virtuelle](/wiki/M%C3%A9moire_virtuelle "Mémoire virtuelle") ayant peu de [mémoire vive](/wiki/M%C3%A9moire_vive "Mémoire vive") (par rapport au nombre de données à traiter), le [tri rapide](/wiki/Tri_rapide "Tri rapide") sera normalement plus efficace que le [tri par tas](/wiki/Tri_par_tas "Tri par tas") car le premier ne passe qu’une seule fois sur chaque élément de la mémoire tandis que le second accède à la mémoire de manière discontinue (ce qui augmente le risque de *[swapping](/wiki/M%C3%A9moire_virtuelle#Swapping "Mémoire virtuelle")*).
* certains algorithmes (ceux dont l'analyse de complexité est dite [amortie](/wiki/Analyse_amortie "Analyse amortie")), pour certaines exécutions de l’algorithme (cas marginaux), présentent une complexité qui sera très supérieure au cas moyen, mais ceci sera compensé par des exécutions rendues efficaces du même algorithme dans une suite d'invocations de cet algorithme.
* l'[Analyse lisse d'algorithme](/wiki/Analyse_lisse_d%27algorithme "Analyse lisse d'algorithme"), qui mesure les performances des algorithmes sur les pires cas, mais avec une légère perturbation des instances. Elle explique pourquoi certains algorithmes analysés comme inefficaces autrement, sont en fait efficaces en pratique. L'[algorithme du simplexe](/wiki/Algorithme_du_simplexe "Algorithme du simplexe") est un exemple d'un algorithme qui se comporte bien pour l'analyse lisse.


## Approches pratiques

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=12 "Modifier la section : Approches pratiques") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=12 "Modifier le code source de la section : Approches pratiques")]
L'algorithmique a développé quelques stratégies pour résoudre les problèmes :



* [algorithme glouton](/wiki/Algorithme_glouton "Algorithme glouton") : un premier algorithme peut souvent être proposé en étudiant le problème très progressivement : on résout chaque sous\-problème localement en espérant que l'ensemble de leurs résultats composera bien une solution du problème global. On parle alors d'algorithme glouton. L'algorithme glouton n'est souvent qu'une première étape dans la rédaction d'un algorithme plus performant ;
* [diviser pour régner](/wiki/Diviser_pour_r%C3%A9gner_(informatique) "Diviser pour régner (informatique)") : pour améliorer les performances des algorithmes, une technique usuelle consiste à diviser les données d'un problème en sous\-ensembles de tailles plus petites, jusqu'à obtenir des données que l'algorithme pourra traiter au cas par cas. Une seconde étape dans ces algorithmes consiste à « fusionner » les résultats partiels pour obtenir une solution globale. Ces algorithmes sont souvent associés à la récursivité ;
* [recherche exhaustive](/wiki/Recherche_exhaustive "Recherche exhaustive") (ou combinatoire) : une méthode utilisant l'énorme puissance de calcul des ordinateurs consiste à regarder tous les cas possibles. Cela n'est pour autant possible que dans certains cas particuliers (la combinatoire est souvent plus forte que l'énorme puissance des ordinateurs, aussi énorme soit\-elle) ;
* décomposition *top\-down* / *bottom\-up* : (décomposition descendante, décomposition remontante) les décompositions *top\-down* consistent à essayer de décomposer le problème en sous\-problèmes à résoudre successivement, la décomposition allant jusqu'à des problèmes triviaux faciles à résoudre. L'algorithme global est alors donné par la composée des algorithmes définis au cours de la décomposition. La démarche *bottom\-up* est la démarche inverse, elle consiste à partir d'algorithmes simples, ne résolvant qu'une étape du problème, pour essayer de les composer pour obtenir un algorithme global ;
* pré\-traitement / post\-traitement : parfois, certains algorithmes comportent une ou deux phases identifiées comme des pré\-traitements (à faire avant l'algorithme principal), ou post\-traitement (à faire après l'algorithme principal), pour simplifier l'écriture de l'algorithme général ;
* [programmation dynamique](/wiki/Programmation_dynamique "Programmation dynamique") : elle s'applique lorsque le problème d'optimisation est composé de plusieurs sous\-problèmes de même nature, et qu'une solution optimale du problème global s'obtient à partir de solutions optimales des sous\-problèmes.


### Les heuristiques

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=13 "Modifier la section : Les heuristiques") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=13 "Modifier le code source de la section : Les heuristiques")]
Articles détaillés : [Algorithme de Las Vegas](/wiki/Algorithme_de_Las_Vegas "Algorithme de Las Vegas") et [Algorithme de Monte\-Carlo](/wiki/Algorithme_de_Monte-Carlo "Algorithme de Monte-Carlo").
Pour certains problèmes, les algorithmes ont une complexité beaucoup trop grande pour obtenir un résultat en temps raisonnable, même si l’on pouvait utiliser une puissance de calcul phénoménale. On est donc amené à rechercher la solution de façon non systématique ([algorithme de Las Vegas](/wiki/Algorithme_de_Las_Vegas "Algorithme de Las Vegas")) ou de se contenter d'une solution la plus proche possible d’une solution optimale en procédant par essais successifs ([algorithme de Monte\-Carlo](/wiki/Algorithme_de_Monte-Carlo "Algorithme de Monte-Carlo")). Puisque toutes les combinaisons ne peuvent être essayées, certains choix stratégiques doivent être faits. Ces choix, généralement très dépendants du problème traité, constituent ce qu’on appelle une [heuristique](/wiki/Heuristique_(math%C3%A9matiques) "Heuristique (mathématiques)"). Le but d’une heuristique n'est donc pas d'essayer toutes les combinaisons possibles, mais de trouver une solution en un temps raisonnable et par un autre moyen, par exemple en procédant à des tirages aléatoires. La solution peut être exacte (Las Vegas) ou approchée (Monte\-Carlo). Les *algorithmes d'Atlantic City* quant à eux donnent de façon probablement efficace une réponse probablement juste (disons avec une chance sur cent millions de se tromper) à la question posée.


C’est ainsi que les programmes de [jeu d’échecs](/wiki/%C3%89checs "Échecs") ou de [jeu de go](/wiki/Jeu_de_go "Jeu de go") (pour ne citer que ceux\-là) font appel de manière très fréquente à des heuristiques qui modélisent l’expérience d’un joueur. Certains [logiciels antivirus](/wiki/Logiciel_antivirus "Logiciel antivirus") se basent également sur des heuristiques pour reconnaître des [virus informatiques](/wiki/Virus_informatique "Virus informatique") non répertoriés dans leur base, en s’appuyant sur des ressemblances avec des virus connus, c'est un exemple d'algorithme d'Atlantic City. De même le [problème SAT](/wiki/Probl%C3%A8me_SAT "Problème SAT") qui est l'archétype du [problème NP\-complet](/wiki/Probl%C3%A8me_NP-complet "Problème NP-complet") donc très difficile est résolu de [façon pratique et efficace par la mise au point d'heuristiques](/wiki/Probl%C3%A8me_SAT#Algorithmes_de_SAT "Problème SAT")[\[11]](#cite_note-11).



## Exemples d’algorithmes, de problèmes, d'applications ou domaines d'application

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=14 "Modifier la section : Exemples d’algorithmes, de problèmes, d'applications ou domaines d'application") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=14 "Modifier le code source de la section : Exemples d’algorithmes, de problèmes, d'applications ou domaines d'application")]
Il existe un certain nombre d’algorithmes classiques, utilisés pour résoudre des problèmes ou plus simplement pour illustrer des méthodes de programmation. On se référera aux articles suivants pour de plus amples détails (voir aussi [liste des algorithmes](/wiki/Liste_des_algorithmes "Liste des algorithmes")) :



* algorithmes ou problèmes classiques (du plus simple ou plus complexe) :
	+ échange, ou comment échanger les valeurs de deux variables : problème classique illustrant la notion de variable informatique (voir aussi [Structure de données](/wiki/Structure_de_donn%C3%A9es "Structure de données")),
	+ algorithmes de recherche, ou comment retrouver une information dans un ensemble structuré ou non (par exemple [Recherche dichotomique](/wiki/Recherche_dichotomique "Recherche dichotomique")),
	+ [algorithme de tri](/wiki/Algorithme_de_tri "Algorithme de tri"), ou comment trier un ensemble de nombres le plus rapidement possible ou en utilisant le moins de ressources possible,
	+ [problème du voyageur de commerce](/wiki/Probl%C3%A8me_du_voyageur_de_commerce "Problème du voyageur de commerce"), [problème du sac à dos](/wiki/Probl%C3%A8me_du_sac_%C3%A0_dos "Problème du sac à dos"), [problème SAT](/wiki/Probl%C3%A8me_SAT "Problème SAT") et autres algorithmes ou approximations de solutions pour les problèmes combinatoires difficiles (dit NP\-complets) ;
* algorithmes ou problèmes illustrant la programmation récursive (voir aussi [algorithme récursif](/wiki/Algorithme_r%C3%A9cursif "Algorithme récursif")) :
	+ [tours de Hanoï](/wiki/Tours_de_Hano%C3%AF "Tours de Hanoï"),
	+ [huit dames](/wiki/Huit_dames "Huit dames"), placer huit dames sur un échiquier sans qu’elles puissent se prendre entre elles,
	+ [suite de Conway](/wiki/Suite_de_Conway "Suite de Conway"),
	+ algorithme de dessins récursifs ([fractale](/wiki/Fractale "Fractale")) pour le [Tapis de Sierpiński](/wiki/Tapis_de_Sierpi%C5%84ski "Tapis de Sierpiński"), la [Courbe du dragon](/wiki/Courbe_du_dragon "Courbe du dragon"), le [Flocon de Koch](/wiki/Flocon_de_Koch "Flocon de Koch")… ;
* algorithmes dans le domaine des mathématiques :
	+ calcul de la [factorielle](/wiki/Factorielle "Factorielle") d'un nombre, de la [Fonction d'Ackermann](/wiki/Fonction_d%27Ackermann "Fonction d'Ackermann") ou de la [suite de Fibonacci](/wiki/Suite_de_Fibonacci "Suite de Fibonacci"),
	+ [algorithme du simplexe](/wiki/Algorithme_du_simplexe "Algorithme du simplexe"), qui minimise une fonction linéaire de variables réelles soumises à des contraintes linéaires,
	+ [fraction continue d'un nombre quadratique](/wiki/Fraction_continue_d%27un_nombre_quadratique "Fraction continue d'un nombre quadratique"), permettant d'extraire une [racine carrée](/wiki/Racine_carr%C3%A9e "Racine carrée"), cas particulier de la [méthode de Newton](/wiki/M%C3%A9thode_de_Newton "Méthode de Newton"),
	+ dans le domaine de l'algèbre : l'[algorithme d'unification](/wiki/Unification "Unification"), le calcul d'une [base de Gröbner](/wiki/Bases_de_Gr%C3%B6bner "Bases de Gröbner") d'un idéal de polynôme et plus généralement presque toutes les méthodes de [calcul symbolique](/wiki/Calcul_symbolique "Calcul symbolique"),
	+ en [théorie des graphes](/wiki/Th%C3%A9orie_des_graphes#Aspect_algorithmique "Théorie des graphes") qui donne lieu à de nombreux algorithmes,
	+ [test de primalité](/wiki/Test_de_primalit%C3%A9 "Test de primalité") ;
* algorithmes pour et dans le domaine de l'informatique :
	+ [cryptologie](/wiki/Cryptologie "Cryptologie") et [compression de données](/wiki/Compression_de_donn%C3%A9es "Compression de données"),
	+ [informatique musicale](/wiki/Informatique_musicale "Informatique musicale"),
	+ [algorithme génétique](/wiki/Algorithme_g%C3%A9n%C3%A9tique "Algorithme génétique") en [informatique décisionnelle](/wiki/Informatique_d%C3%A9cisionnelle "Informatique décisionnelle"),
	+ analyse et compilation des langages formels (voir [Compilateur](/wiki/Compilateur "Compilateur") et [Interprète (informatique)](/wiki/Interpr%C3%A8te_(informatique) "Interprète (informatique)")),
	+ [allocation de mémoire](/wiki/Allocation_de_m%C3%A9moire "Allocation de mémoire") ([ramasse\-miettes](/wiki/Ramasse-miettes_(informatique) "Ramasse-miettes (informatique)")).


## Annexes

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=15 "Modifier la section : Annexes") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=15 "Modifier le code source de la section : Annexes")]
### Notes et références

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=16 "Modifier la section : Notes et références") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=16 "Modifier le code source de la section : Notes et références")]
1. [↑](#cite_ref-1) Phillipe Collard et [Philippe Flajolet](/wiki/Philippe_Flajolet "Philippe Flajolet"), « [Algorithmique](http://www.universalis.fr/encyclopedie/algorithmique/) », sur Encyclopædia universalis (consulté le 8 mars 2015).
2. [↑](#cite_ref-2) Albert Dauzat, Jean Dubois, Henri Mitterand, *Nouveau dictionnaire étymologique et historique*, 1971
3. [↑](#cite_ref-3) [Hoéné de Wronski](/wiki/Josef_Ho%C3%ABn%C3%A9-Wronski "Josef Hoëné-Wronski"), Introduction à la philosophie des mathématiques et technie de l'algorithmie, Chez Courcier, imprimeur\-libraire pour les mathématiques, 1811 ([lire en ligne](https://gallica.bnf.fr/ark:/12148/bpt6k6225961k.r=algorithmie))
4. [↑](#cite_ref-4) Par exemple, l'[UQAM](/wiki/Universit%C3%A9_du_Qu%C3%A9bec_%C3%A0_Montr%C3%A9al "Université du Québec à Montréal") propose un cours intitulé « [Algorithmie de base et interactivité](https://etudier.uqam.ca/cours?sigle=EDM4600) », et l'université de Montréal, un cours intitulé « [Algorithmie et effets audionumériques](https://studium.umontreal.ca/course/info.php?id=48463) ».
5. [↑](#cite_ref-5) [Donald Knuth](/wiki/Donald_Knuth "Donald Knuth"), « Ancient Babylonian Algorithms », *[Communications of the ACM](/wiki/Communications_of_the_ACM "Communications of the ACM")*, vol. 15, no 7,‎ juillet 1972, repris dans [Donald Knuth](/wiki/Donald_Knuth "Donald Knuth"), Selected Papers on Computer Science, [Addison\-Wesley](/wiki/Addison-Wesley "Addison-Wesley"), 1996, p. 185, traduit en français sous le titre *Algoritmes babyloniens anciens* dans [Donald Knuth](/wiki/Donald_Knuth "Donald Knuth") (trad. P. Cégielski), Éléments pour une histoire de l'informatique, [Librairie Eyrolles](/wiki/Librairie_Eyrolles "Librairie Eyrolles"), 2011.
6. [↑](#cite_ref-6) Christine Proust, « Mathématiques en Mésopotamie », *Images des Mathématiques*,‎ 14 avril 2014 ([lire en ligne](http://images.math.cnrs.fr/Mathematiques-en-Mesopotamie)).
7. [↑](#cite_ref-7) Le calcul de π « est caractéristique des problèmes généraux rencontrés en algorithmique. » Phillipe Collard et Phillipe Flajolet, « [Algorithmique : 1\. L'exemple du calcul de π](http://www.universalis.fr/encyclopedie/algorithmique/1-l-exemple-du-calcul-de-p) », sur [Encyclopædia universalis](/wiki/Encyclop%C3%A6dia_universalis "Encyclopædia universalis") (consulté le 8 mars 2015).
8. [↑](#cite_ref-8) [Stephen Wolfram](/wiki/Stephen_Wolfram "Stephen Wolfram") (en) « [Untangling the Tale of Ada Lovelace](http://blog.stephenwolfram.com/2015/12/untangling-the-tale-of-ada-lovelace/) », sur blog.stephenwolfram.com
9. [↑](#cite_ref-9) En [cryptographie](/wiki/Cryptographie "Cryptographie"), le terme codage est utilisé dans un sens différent.
10. ↑ [a](#cite_ref-hertel2019_10-0) et [b](#cite_ref-hertel2019_10-1) Hertel \& Delattre V (2019\) *[\[SEAActu17h](https://www.sciencesetavenir.fr/high-tech/intelligence-artificielle/les-algorithmes-sont-partout-leurs-biais-nous-trompent_131820#xtor=EPR-1-)\-20190302 Les algorithmes sont partout, leurs biais de conception nous trompent]* ; le 02\.03\.2019
11. [↑](#cite_ref-11) (en) [Moshe Vardi](/wiki/Moshe_Vardi "Moshe Vardi"), *Boolean Satisfiability: Theory and Engineering* [(Communications of the ACM, Vol. 57 Nos. 3, p. 5\)](http://cacm.acm.org/magazines/2014/3/172516-boolean-satisfiability/fulltext).


### Bibliographie

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=17 "Modifier la section : Bibliographie") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=17 "Modifier le code source de la section : Bibliographie")]
* (en) [Donald E. Knuth](/wiki/Donald_Knuth "Donald Knuth"), [The Art of Computer Programming](/wiki/The_Art_of_Computer_Programming "The Art of Computer Programming"), vol. 2 : Seminumerical algorithms, Reading, Mass, Addison\-Wesley Pub. Co, 1973, 764 p. ([ISBN](/wiki/International_Standard_Book_Number "International Standard Book Number") [978\-0\-201\-89684\-8](/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-0-201-89684-8 "Spécial:Ouvrages de référence/978-0-201-89684-8") et [978\-0\-321\-75104\-1](/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-0-321-75104-1 "Spécial:Ouvrages de référence/978-0-321-75104-1"), [OCLC](/wiki/Online_Computer_Library_Center "Online Computer Library Center") [781024586](https://worldcat.org/fr/title/781024586))
* Michel Quercia, Algorithmique : Cours complet, exercices et problèmes résolus, travaux pratiques, Vuibert, 2002, 303 p. ([ISBN](/wiki/International_Standard_Book_Number "International Standard Book Number") [2\-7117\-7091\-5](/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/2-7117-7091-5 "Spécial:Ouvrages de référence/2-7117-7091-5"))
* [Thomas H. Cormen](/wiki/Thomas_H._Cormen "Thomas H. Cormen"), [Charles E. Leiserson](/wiki/Charles_E._Leiserson "Charles E. Leiserson"), [Ronald L. Rivest](/wiki/Ronald_Rivest "Ronald Rivest") et [Clifford Stein](/wiki/Clifford_Stein "Clifford Stein") (trad. de l'anglais), [Algorithmique](/wiki/Introduction_%C3%A0_l%27algorithmique "Introduction à l'algorithmique") : Cours avec 957 exercices et 158 problèmes, [Dunod](/wiki/Dunod "Dunod"), 2010 \[[détail de l’édition](/wiki/R%C3%A9f%C3%A9rence:Introduction_%C3%A0_l%27algorithmique#Dunod_2010 "Référence:Introduction à l'algorithmique")]
* Patrick Bosc, Marc Guyomard et Laurent Miclet, Conception d'algorithmes : principes et 150 exercices corrigés, Paris, Eyrolles, 2019, 832 p. ([ISBN](/wiki/International_Standard_Book_Number "International Standard Book Number") [978\-2\-212\-67728\-7](/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-2-212-67728-7 "Spécial:Ouvrages de référence/978-2-212-67728-7"), [BNF](/wiki/Biblioth%C3%A8que_nationale_de_France "Bibliothèque nationale de France") [45663637](https://catalogue.bnf.fr/ark:/12148/cb456636375.public))


### Articles connexes

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=18 "Modifier la section : Articles connexes") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=18 "Modifier le code source de la section : Articles connexes")]
* [Algorithme récursif](/wiki/Algorithme_r%C3%A9cursif "Algorithme récursif")
* [Algorithme réparti](/wiki/Algorithme_r%C3%A9parti "Algorithme réparti")
* [Algorithme émergent](/wiki/Algorithme_%C3%A9mergent "Algorithme émergent")
* [Algorithme adaptatif](/wiki/Algorithme_adaptatif "Algorithme adaptatif")
* [Algorithme d'approximation](/wiki/Algorithme_d%27approximation "Algorithme d'approximation")
* [Art algorithmique](/wiki/Art_algorithmique "Art algorithmique")
* [Liste d'algorithmes](/wiki/Liste_d%27algorithmes "Liste d'algorithmes")
* [Métaheuristique](/wiki/M%C3%A9taheuristique "Métaheuristique")
* [Recherche opérationnelle](/wiki/Recherche_op%C3%A9rationnelle "Recherche opérationnelle")
* [Paradigme (programmation)](/wiki/Paradigme_(programmation) "Paradigme (programmation)")


### Liens externes

\[[modifier](/w/index.php?title=Algorithmique&veaction=edit&section=19 "Modifier la section : Liens externes") \| [modifier le code](/w/index.php?title=Algorithmique&action=edit&section=19 "Modifier le code source de la section : Liens externes")]

Sur les autres projets Wikimedia :


* [algorithmie](https://fr.wiktionary.org/wiki/algorithmie "wikt:algorithmie"), sur le Wiktionnaire
* [Algorithmique](https://fr.wikiversity.org/wiki/Algorithmique "v:Algorithmique"), sur Wikiversity
* [Algorithmique](https://fr.wikibooks.org/wiki/Algorithmique_imp%C3%A9rative "b:Algorithmique impérative"), sur Wikibooks



* [Qu’est\-ce qu'un algorithme ?](http://interstices.info/algo) par [Philippe Flajolet](/wiki/Philippe_Flajolet "Philippe Flajolet") et Étienne Parizot sur la revue en ligne [Interstices](/wiki/Interstices "Interstices")






* 
* 
* Notice dans un dictionnaire ou une encyclopédie généraliste[![Voir et modifier les données sur Wikidata](//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png)](https://www.wikidata.org/wiki/Q13636890?uselang=fr#identifiers "Voir et modifier les données sur Wikidata") : 
	+ [*Universalis*](https://www.universalis.fr/encyclopedie/algorithmique/)
* 





| [v](/wiki/Mod%C3%A8le:Palette_Informatique_th%C3%A9orique "Modèle:Palette Informatique théorique") · [m](https://fr.wikipedia.org/w/index.php?title=Mod%C3%A8le:Palette_Informatique_th%C3%A9orique&action=edit)[Informatique théorique](/wiki/Informatique_th%C3%A9orique "Informatique théorique") | |
| --- | --- |
| Codage | * [Codage de l'information](/wiki/Codage_de_l%27information "Codage de l'information") * [Compression de données](/wiki/Compression_de_donn%C3%A9es "Compression de données") * [Chiffrement](/wiki/Chiffrement "Chiffrement") * [Cryptanalyse](/wiki/Cryptanalyse "Cryptanalyse") * [Cryptographie](/wiki/Cryptographie "Cryptographie") * [Théorie de l'information](/wiki/Th%C3%A9orie_de_l%27information "Théorie de l'information") |
| Modèles de calcul | * [Calculabilité](/wiki/Th%C3%A9orie_de_la_calculabilit%C3%A9 "Théorie de la calculabilité") * [Décidabilité et indécidabilité](/wiki/D%C3%A9cidabilit%C3%A9 "Décidabilité") * [Ensemble récursif](/wiki/Ensemble_r%C3%A9cursif "Ensemble récursif") * [Problème de l'arrêt](/wiki/Probl%C3%A8me_de_l%27arr%C3%AAt "Problème de l'arrêt") * [Ensemble récursivement énumérable](/wiki/R%C3%A9cursivement_%C3%A9num%C3%A9rable "Récursivement énumérable") * [Machine de Turing](/wiki/Machine_de_Turing "Machine de Turing") * [Thèse de Church](/wiki/Th%C3%A8se_de_Church "Thèse de Church") * [Automate cellulaire](/wiki/Automate_cellulaire "Automate cellulaire") * [Réseau de neurones artificiels](/wiki/R%C3%A9seau_de_neurones_artificiels "Réseau de neurones artificiels") * [Réduction polynomiale](/wiki/R%C3%A9duction_polynomiale "Réduction polynomiale") * [Problème NP\-complet](/wiki/Cat%C3%A9gorie:Probl%C3%A8me_NP-complet "Catégorie:Problème NP-complet") * [Principe de Church\-Turing\-Deutsch](/wiki/Principe_de_Church-Turing-Deutsch "Principe de Church-Turing-Deutsch") |
| Algorithmique | * Algorithmique * [Algorithme glouton](/wiki/Algorithme_glouton "Algorithme glouton") * [Algorithme probabiliste](/wiki/Algorithme_probabiliste "Algorithme probabiliste") * [Algorithme génétique](/wiki/Algorithme_g%C3%A9n%C3%A9tique "Algorithme génétique") * [Complexité algorithmique](/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_(informatique_th%C3%A9orique) "Théorie de la complexité (informatique théorique)") * [Analyse d'algorithme](/wiki/Analyse_de_la_complexit%C3%A9_des_algorithmes "Analyse de la complexité des algorithmes") * [Diviser pour régner](/wiki/Diviser_pour_r%C3%A9gner_(informatique) "Diviser pour régner (informatique)") * [Heuristique](/wiki/Heuristique_(math%C3%A9matiques) "Heuristique (mathématiques)") * [Programmation dynamique](/wiki/Programmation_dynamique "Programmation dynamique") * [Géométrie algorithmique](/wiki/G%C3%A9om%C3%A9trie_algorithmique "Géométrie algorithmique") * [Algorithmes de tri](/wiki/Algorithme_de_tri "Algorithme de tri") * [Algorithmique du texte](/wiki/Algorithmique_du_texte "Algorithmique du texte") * [Exploration de données](/wiki/Exploration_de_donn%C3%A9es "Exploration de données") * [Science des données](/wiki/Science_des_donn%C3%A9es "Science des données") * [Apprentissage profond](/wiki/Apprentissage_profond "Apprentissage profond") * [Test de primalité](/wiki/Test_de_primalit%C3%A9 "Test de primalité") * [Structure de données](/wiki/Structure_de_donn%C3%A9es "Structure de données") * [Arbre enraciné](/wiki/Arbre_enracin%C3%A9 "Arbre enraciné") * [Concurrence](/wiki/Programmation_concurrente "Programmation concurrente") * [Parallélisme](/wiki/Parall%C3%A9lisme_(informatique) "Parallélisme (informatique)") |
| Syntaxe | * [Réécriture](/wiki/R%C3%A9%C3%A9criture_(informatique) "Réécriture (informatique)") * [Compilation](/wiki/Compilateur "Compilateur") * [Expression régulière](/wiki/Expression_r%C3%A9guli%C3%A8re "Expression régulière") * [Grammaire formelle](/wiki/Grammaire_formelle "Grammaire formelle") * [Langage rationnel](/wiki/Langage_rationnel "Langage rationnel") * [Ensemble rationnel](/wiki/Ensemble_rationnel "Ensemble rationnel") * [Théorie des langages](/wiki/Langage_formel "Langage formel") * [Théorie des automates](/wiki/Th%C3%A9orie_des_automates "Théorie des automates") * [Automate fini](/wiki/Automate_fini "Automate fini") * [Automate sur les mots infinis](/wiki/Automate_sur_les_mots_infinis "Automate sur les mots infinis") * [Automate d'arbres](/wiki/Automate_d%27arbres "Automate d'arbres") * [Automate à pile](/wiki/Automate_%C3%A0_pile "Automate à pile") * [Hiérarchie de Chomsky](/wiki/Hi%C3%A9rarchie_de_Chomsky "Hiérarchie de Chomsky") * [Linguistique informatique](/wiki/Linguistique_informatique "Linguistique informatique") |
| Sémantique | * [Interprétation abstraite](/wiki/Interpr%C3%A9tation_abstraite "Interprétation abstraite") * [Méthodes formelles](/wiki/M%C3%A9thode_formelle_(informatique) "Méthode formelle (informatique)") * [Vérification de modèles](/wiki/V%C3%A9rification_de_mod%C3%A8les "Vérification de modèles") * [Sémantique des langages de programmation](/wiki/S%C3%A9mantique_des_langages_de_programmation "Sémantique des langages de programmation") * [Sémantique dénotationnelle](/wiki/S%C3%A9mantique_d%C3%A9notationnelle "Sémantique dénotationnelle") * [Sémantique axiomatique](/wiki/S%C3%A9mantique_axiomatique "Sémantique axiomatique") * [Sémantique opérationnelle](/wiki/S%C3%A9mantique_op%C3%A9rationnelle "Sémantique opérationnelle") |
| [Logique mathématique](/wiki/Logique_math%C3%A9matique "Logique mathématique") | * [Assistant de preuve](/wiki/Assistant_de_preuve "Assistant de preuve") * [Calcul des prédicats](/wiki/Calcul_des_pr%C3%A9dicats "Calcul des prédicats") * [Correspondance de Curry\-Howard](/wiki/Correspondance_de_Curry-Howard "Correspondance de Curry-Howard") * [Fonction récursive](/wiki/Fonction_r%C3%A9cursive "Fonction récursive") * [Lambda\-calcul](/wiki/Lambda-calcul "Lambda-calcul") * [Théorèmes d'incomplétude de Gödel](/wiki/Th%C3%A9or%C3%A8mes_d%27incompl%C3%A9tude_de_G%C3%B6del "Théorèmes d'incomplétude de Gödel") * [Théorie des types](/wiki/Th%C3%A9orie_des_types "Théorie des types") |
| [Mathématiques discrètes](/wiki/Math%C3%A9matiques_discr%C3%A8tes "Mathématiques discrètes") | * [Combinatoire](/wiki/Combinatoire "Combinatoire") * [Algorithme du simplexe](/wiki/Algorithme_du_simplexe "Algorithme du simplexe") * [Optimisation combinatoire](/wiki/Optimisation_combinatoire "Optimisation combinatoire") * [Théorie des graphes](/wiki/Th%C3%A9orie_des_graphes "Théorie des graphes") * [Algorithmes de la théorie des graphes](/wiki/Liste_des_algorithmes_de_la_th%C3%A9orie_des_graphes "Liste des algorithmes de la théorie des graphes") * [Recherche opérationnelle](/wiki/Recherche_op%C3%A9rationnelle "Recherche opérationnelle") * [Théorie de la décision](/wiki/Th%C3%A9orie_de_la_d%C3%A9cision "Théorie de la décision") * [Analyse numérique](/wiki/Analyse_num%C3%A9rique "Analyse numérique") |




| [v](/wiki/Mod%C3%A8le:Palette_Domaines_de_l%27informatique "Modèle:Palette Domaines de l'informatique") · [m](https://fr.wikipedia.org/w/index.php?title=Mod%C3%A8le:Palette_Domaines_de_l%27informatique&action=edit)Domaines de l'[informatique](/wiki/Informatique "Informatique") | |
| --- | --- |
| Remarque : cette liste s'inspire du [système de classification informatique de l'ACM](/wiki/Syst%C3%A8me_de_classification_informatique_de_l%27ACM "Système de classification informatique de l'ACM") édité en [2012](/wiki/2012 "2012") | |
| [Matériel](/wiki/Mat%C3%A9riel_informatique "Matériel informatique") | * [Circuit imprimé](/wiki/Circuit_imprim%C3%A9 "Circuit imprimé") * [Périphérique](/wiki/P%C3%A9riph%C3%A9rique_informatique "Périphérique informatique") * [Circuit intégré](/wiki/Circuit_int%C3%A9gr%C3%A9 "Circuit intégré") * [Intégration à très grande échelle](/wiki/Int%C3%A9gration_%C3%A0_tr%C3%A8s_grande_%C3%A9chelle "Intégration à très grande échelle") * [Circuit logique programmable](/wiki/Circuit_logique_programmable "Circuit logique programmable") * [Informatique durable](/wiki/Informatique_durable "Informatique durable") * [Conception assistée par ordinateur pour l'électronique](/wiki/Conception_assist%C3%A9e_par_ordinateur_pour_l%27%C3%A9lectronique "Conception assistée par ordinateur pour l'électronique") |
| [Appareil](/wiki/Appareil_informatique "Appareil informatique") et organisationd'un [système](/wiki/Syst%C3%A8me_de_traitement_de_l%27information "Système de traitement de l'information") | * [Architecture matérielle](/wiki/Architecture_mat%C3%A9rielle "Architecture matérielle") * [Architecture de processeur](/wiki/Architecture_de_processeur "Architecture de processeur") * [Machine à calculer](/wiki/Calculatrice_m%C3%A9canique "Calculatrice mécanique") * [Mécanographie](/wiki/M%C3%A9canographie "Mécanographie") * [Calculateur analogique](/wiki/Calculateur_analogique "Calculateur analogique") * [Calculatrice](/wiki/Calculatrice "Calculatrice") * [Calculateur quantique](/wiki/Ordinateur_quantique "Ordinateur quantique") * [Ordinateur](/wiki/Ordinateur "Ordinateur") * [Système embarqué](/wiki/Syst%C3%A8me_embarqu%C3%A9 "Système embarqué") * [Système temps réel](/wiki/Syst%C3%A8me_temps_r%C3%A9el "Système temps réel") * [Sûreté de fonctionnement](/wiki/S%C3%BBret%C3%A9_de_fonctionnement "Sûreté de fonctionnement") |
| [Réseau](/wiki/R%C3%A9seau_informatique "Réseau informatique") | * [Architecture de réseau](/wiki/Architecture_de_r%C3%A9seau "Architecture de réseau") * [Protocole de communication](/wiki/Protocole_de_communication "Protocole de communication") * [Équipement d'interconnexion de réseau informatique](/wiki/%C3%89quipement_d%27interconnexion_de_r%C3%A9seau_informatique "Équipement d'interconnexion de réseau informatique") * [Planificateur de réseau](/w/index.php?title=Planificateur_de_r%C3%A9seau&action=edit&redlink=1 "Planificateur de réseau (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Network_scheduler "en:Network scheduler") * [Rendement du réseau](/w/index.php?title=Rendement_du_r%C3%A9seau&action=edit&redlink=1 "Rendement du réseau (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Network_performance "en:Network performance") * [Service réseau](/wiki/Service_r%C3%A9seau "Service réseau") |
| Organisation du [logiciel](/wiki/Logiciel "Logiciel") | * [Interprète](/wiki/Interpr%C3%A8te_(informatique) "Interprète (informatique)") * [Middleware](/wiki/Middleware "Middleware") * [Machine virtuelle](/wiki/Machine_virtuelle "Machine virtuelle") * [Système d'exploitation](/wiki/Syst%C3%A8me_d%27exploitation "Système d'exploitation") * [Qualité logicielle](/wiki/Qualit%C3%A9_logicielle "Qualité logicielle") |
| [Théorie](/wiki/Th%C3%A9orie_des_langages_de_programmation "Théorie des langages de programmation") et [outil](/w/index.php?title=Outil_de_programmation&action=edit&redlink=1 "Outil de programmation (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Programming_tool "en:Programming tool")de programmation | * [Paradigme de programmation](/wiki/Paradigme_(programmation) "Paradigme (programmation)") * [Langage de programmation](/wiki/Langage_de_programmation "Langage de programmation") * [Compilateur](/wiki/Compilateur "Compilateur") * [Langage dédié](/wiki/Langage_d%C3%A9di%C3%A9 "Langage dédié") * [Langage de modélisation](/wiki/Langage_de_mod%C3%A9lisation "Langage de modélisation") * [Cadriciel](/wiki/Framework "Framework") * [Environnement de développement](/wiki/Environnement_de_d%C3%A9veloppement "Environnement de développement") * [Gestion de configuration logicielle](/wiki/Gestion_de_configuration_logicielle "Gestion de configuration logicielle") * [Bibliothèque logicielle](/wiki/Biblioth%C3%A8que_logicielle "Bibliothèque logicielle") * [Dépôt](/wiki/D%C3%A9p%C3%B4t_(informatique) "Dépôt (informatique)") |
| [Développement de logiciel](/wiki/D%C3%A9veloppement_de_logiciel "Développement de logiciel") | * [Software development process](/wiki/Processus_de_d%C3%A9veloppement_logiciel "Processus de développement logiciel") * [Analyse des exigences](/wiki/Analyse_des_exigences "Analyse des exigences") * [Conception de logiciel](/wiki/Conception_de_logiciel "Conception de logiciel") * [Assemblage de logiciel](/w/index.php?title=Assemblage_de_logiciel&action=edit&redlink=1 "Assemblage de logiciel (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Software_construction "en:Software construction") * [Déploiement de logiciel](/w/index.php?title=D%C3%A9ploiement_de_logiciel&action=edit&redlink=1 "Déploiement de logiciel (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Software_deployment "en:Software deployment") * [Maintenance du logiciel](/wiki/Maintenance_du_logiciel "Maintenance du logiciel") * [Équipe de programmation](/w/index.php?title=%C3%89quipe_de_programmation&action=edit&redlink=1 "Équipe de programmation (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Programming_team "en:Programming team") * *[Open source](/wiki/Open_source "Open source")* |
| [Théorie du calcul](/w/index.php?title=Th%C3%A9orie_du_calcul&action=edit&redlink=1 "Théorie du calcul (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Theory_of_computation "en:Theory of computation") | * [Modèle de calcul](/wiki/Mod%C3%A8le_de_calcul "Modèle de calcul") * [Langage formel](/wiki/Langage_formel "Langage formel") * [Théorie des automates](/wiki/Th%C3%A9orie_des_automates "Théorie des automates") * [Théorie de la complexité](/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_(informatique_th%C3%A9orique) "Théorie de la complexité (informatique théorique)") * [Logique](/w/index.php?title=Logique_(informatique)&action=edit&redlink=1 "Logique (informatique) (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Logic_in_computer_science "en:Logic in computer science") * [Sémantique](/wiki/S%C3%A9mantique_des_langages_de_programmation "Sémantique des langages de programmation") |
| Algorithmique | * [Algorithme](/wiki/Algorithme "Algorithme") * [Conception d'algorithme](/w/index.php?title=Conception_d%27algorithme&action=edit&redlink=1 "Conception d'algorithme (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Algorithm_design "en:Algorithm design") * [Analyse de la complexité des algorithmes](/wiki/Analyse_de_la_complexit%C3%A9_des_algorithmes "Analyse de la complexité des algorithmes") * [Algorithme évolutionniste](/wiki/Algorithme_%C3%A9volutionniste "Algorithme évolutionniste") * [Algorithme probabiliste](/wiki/Algorithme_probabiliste "Algorithme probabiliste") * [Géométrie algorithmique](/wiki/G%C3%A9om%C3%A9trie_algorithmique "Géométrie algorithmique") * [Génération procédurale](/wiki/G%C3%A9n%C3%A9ration_proc%C3%A9durale "Génération procédurale") |
| Mathématiquesde l'informatique | * [Mathématiques discrètes](/wiki/Math%C3%A9matiques_discr%C3%A8tes "Mathématiques discrètes") * [Probabilité](/wiki/Probabilit%C3%A9 "Probabilité") * [Statistique](/wiki/Statistique "Statistique") * [Logiciel mathématique](/w/index.php?title=Logiciel_math%C3%A9matique&action=edit&redlink=1 "Logiciel mathématique (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Mathematical_software "en:Mathematical software") * [Théorie de l'information](/wiki/Th%C3%A9orie_de_l%27information "Théorie de l'information") * [Analyse](/wiki/Analyse_(math%C3%A9matiques) "Analyse (mathématiques)") * [Analyse numérique](/wiki/Analyse_num%C3%A9rique "Analyse numérique") |
| [Système d'information](/wiki/Syst%C3%A8me_d%27information "Système d'information") | * [Base de données](/wiki/Base_de_donn%C3%A9es "Base de données") * [Mémoire (informatique)](/wiki/M%C3%A9moire_(informatique) "Mémoire (informatique)") * [Progiciel](/wiki/Progiciel "Progiciel") * [Logiciel social](/wiki/Logiciel_social "Logiciel social") * [Système d'information géographique](/wiki/Syst%C3%A8me_d%27information_g%C3%A9ographique "Système d'information géographique") * [Système d'aide à la décision](/wiki/Informatique_d%C3%A9cisionnelle "Informatique décisionnelle") * [Supervision](/wiki/Supervision_(informatique) "Supervision (informatique)") * [Base de données multimédia](/wiki/Base_de_donn%C3%A9es_multim%C3%A9dia "Base de données multimédia") * [Exploration de données](/wiki/Exploration_de_donn%C3%A9es "Exploration de données") * [Bibliothèque numérique](/wiki/Biblioth%C3%A8que_num%C3%A9rique "Bibliothèque numérique") * [Plateforme](/wiki/Plateforme_(informatique) "Plateforme (informatique)") * [Marketing électronique](/wiki/Marketing_%C3%A9lectronique "Marketing électronique") * [World Wide Web](/wiki/World_Wide_Web "World Wide Web") * [Recherche d'information](/wiki/Recherche_d%27information "Recherche d'information") |
| [Sécurité](/wiki/S%C3%A9curit%C3%A9_des_syst%C3%A8mes_d%27information "Sécurité des systèmes d'information") | * [Cryptographie](/wiki/Cryptographie "Cryptographie") * [Méthode formelle](/wiki/M%C3%A9thode_formelle_(informatique) "Méthode formelle (informatique)") * [Service de sécurité](/w/index.php?title=Service_de_s%C3%A9curit%C3%A9_(t%C3%A9l%C3%A9communication)&action=edit&redlink=1 "Service de sécurité (télécommunication) (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Security_service_(telecommunication) "en:Security service (telecommunication)") * [Système de détection d'intrusion](/wiki/Syst%C3%A8me_de_d%C3%A9tection_d%27intrusion "Système de détection d'intrusion") * [Sécurité matérielle](/w/index.php?title=S%C3%A9curit%C3%A9_informatique_compromise_par_une_d%C3%A9faillance_mat%C3%A9rielle&action=edit&redlink=1 "Sécurité informatique compromise par une défaillance matérielle (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Computer_security_compromised_by_hardware_failure "en:Computer security compromised by hardware failure") * [Sécurité du réseau](/wiki/S%C3%A9curit%C3%A9_du_r%C3%A9seau "Sécurité du réseau") * [Sécurité de l'information](/wiki/S%C3%A9curit%C3%A9_de_l%27information "Sécurité de l'information") * [Sécurité de l'application](/w/index.php?title=S%C3%A9curit%C3%A9_de_l%27application&action=edit&redlink=1 "Sécurité de l'application (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Application_security "en:Application security") |
| [Interactions humain\-machine](/wiki/Interactions_humain-machine "Interactions humain-machine") | * [Design numérique](/wiki/Design_num%C3%A9rique "Design numérique") * [Informatique sociale](/w/index.php?title=Informatique_sociale&action=edit&redlink=1 "Informatique sociale (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Social_computing "en:Social computing") * [Informatique ubiquitaire](/wiki/Informatique_ubiquitaire "Informatique ubiquitaire") * [Visualisation](/w/index.php?title=Visualisation&action=edit&redlink=1 "Visualisation (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Visualization_(computer_graphics) "en:Visualization (computer graphics)") * [Accessibilité numérique](/wiki/Accessibilit%C3%A9_num%C3%A9rique "Accessibilité numérique") |
| [Concurrence](/w/index.php?title=Concurrence_informatique&action=edit&redlink=1 "Concurrence informatique (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Concurrency_(computer_science) "en:Concurrency (computer science)") | * [Programmation concurrente](/wiki/Programmation_concurrente "Programmation concurrente") * [Parallélisme](/wiki/Parall%C3%A9lisme_(informatique) "Parallélisme (informatique)") * [Calcul distribué](/wiki/Calcul_distribu%C3%A9 "Calcul distribué") * [Multithreading](/wiki/Multithreading "Multithreading") * [Multiprocesseur](/wiki/Multiprocesseur "Multiprocesseur") |
| [Intelligence artificielle](/wiki/Intelligence_artificielle "Intelligence artificielle") | * [Traitement automatique des langues](/wiki/Traitement_automatique_des_langues "Traitement automatique des langues") * [Représentation des connaissances](/wiki/Repr%C3%A9sentation_des_connaissances "Représentation des connaissances") * [Vision par ordinateur](/wiki/Vision_par_ordinateur "Vision par ordinateur") * [Planification](/wiki/Planification_(intelligence_artificielle) "Planification (intelligence artificielle)") * [Optimisation](/wiki/Optimisation_(math%C3%A9matiques) "Optimisation (mathématiques)") * [Philosophie de l'intelligence artificielle](/wiki/Philosophie_de_l%27intelligence_artificielle "Philosophie de l'intelligence artificielle") * [Intelligence artificielle distribuée](/wiki/Intelligence_artificielle_distribu%C3%A9e "Intelligence artificielle distribuée") |
| [Apprentissage automatique](/wiki/Apprentissage_automatique "Apprentissage automatique") | * [Apprentissage supervisé](/wiki/Apprentissage_supervis%C3%A9 "Apprentissage supervisé") * [Apprentissage non supervisé](/wiki/Apprentissage_non_supervis%C3%A9 "Apprentissage non supervisé") * [Apprentissage par renforcement](/wiki/Apprentissage_par_renforcement "Apprentissage par renforcement") * [Apprentissage multi\-tâches](/w/index.php?title=Apprentissage_multi-t%C3%A2ches&action=edit&redlink=1 "Apprentissage multi-tâches (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Multi-task_learning "en:Multi-task learning") * [Validation croisée](/wiki/Validation_crois%C3%A9e "Validation croisée") |
| [Infographie](/wiki/Infographie "Infographie") | * [Animation par ordinateur](/wiki/Animation_par_ordinateur "Animation par ordinateur") * [Animation 2D numérique](/wiki/Animation_2D_num%C3%A9rique "Animation 2D numérique") * [Animation 3D](/wiki/Animation_3D "Animation 3D") * [Rendu photoréaliste](/wiki/Rendu_photor%C3%A9aliste "Rendu photoréaliste") * [Retouche d'image](/wiki/Retouche_d%27image "Retouche d'image") * [Processeur graphique](/wiki/Processeur_graphique "Processeur graphique") * [Réalité mixte](/wiki/R%C3%A9alit%C3%A9_mixte "Réalité mixte") * [Réalité virtuelle](/wiki/R%C3%A9alit%C3%A9_virtuelle "Réalité virtuelle") * [Compression d'image](/wiki/Compression_d%27image "Compression d'image") * [Conception paramétrique](/wiki/Conception_param%C3%A9trique "Conception paramétrique") |
| Audio informatique | * [Générateur de son programmable](/wiki/G%C3%A9n%C3%A9rateur_de_son_programmable "Générateur de son programmable") * [Processeur de signal numérique](/wiki/Processeur_de_signal_num%C3%A9rique "Processeur de signal numérique") * [Synthétiseur analogique](/wiki/Synth%C3%A9tiseur_analogique "Synthétiseur analogique") * [échantillonnage](/wiki/%C3%89chantillon_(musique) "Échantillon (musique)") * [Séquenceur musical](/wiki/S%C3%A9quenceur_musical "Séquenceur musical") * [Tracker (musique)](/wiki/Tracker_(musique) "Tracker (musique)") * [Musique assistée par ordinateur](/wiki/Musique_assist%C3%A9e_par_ordinateur "Musique assistée par ordinateur") |
| Informatique appliquée | * [Commerce en ligne](/wiki/Commerce_en_ligne "Commerce en ligne") * [Logiciel d'entreprise](/wiki/Progiciel "Progiciel") * [Mathématiques computationnelles](/wiki/Math%C3%A9matiques_computationnelles "Mathématiques computationnelles") * [Physique numérique](/wiki/Physique_num%C3%A9rique "Physique numérique") * [Chimie numérique](/wiki/Chimie_num%C3%A9rique "Chimie numérique") * [Biologie numérique](/wiki/Biologie_computationnelle "Biologie computationnelle") * [Sciences sociales numérique](/w/index.php?title=Sciences_sociales_num%C3%A9rique&action=edit&redlink=1 "Sciences sociales numérique (page inexistante)") [(en)](https://en.wikipedia.org/wiki/Computational_social_science "en:Computational social science") * [Ingénierie numérique](/wiki/Ing%C3%A9nierie_assist%C3%A9e_par_ordinateur "Ingénierie assistée par ordinateur") * [Informatique médicale](/wiki/Informatique_m%C3%A9dicale "Informatique médicale") * [Art numérique](/wiki/Art_num%C3%A9rique "Art numérique") * [Édition électronique](/wiki/%C3%89dition_num%C3%A9rique "Édition numérique") * [Cyberguerre](/wiki/Cyberguerre "Cyberguerre") * [Vote électronique](/wiki/Vote_%C3%A9lectronique "Vote électronique") * [Jeu vidéo](/wiki/Jeu_vid%C3%A9o "Jeu vidéo") * [Traitement de texte](/wiki/Logiciel_de_traitement_de_texte "Logiciel de traitement de texte") * [Recherche opérationnelle](/wiki/Recherche_op%C3%A9rationnelle "Recherche opérationnelle") * [Technologies de l'éducation](/wiki/Technologies_de_l%27%C3%A9ducation "Technologies de l'éducation") * [Gestion électronique des documents](/wiki/Gestion_%C3%A9lectronique_des_documents "Gestion électronique des documents") |



* [![icône décorative](//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Max-cut.svg/30px-Max-cut.svg.png)](/wiki/Portail:Informatique_th%C3%A9orique "Portail de l'informatique théorique") [Portail de l'informatique théorique](/wiki/Portail:Informatique_th%C3%A9orique "Portail:Informatique théorique")





![](https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1)
Ce document provient de « [https://fr.wikipedia.org/w/index.php?title\=Algorithmique\&oldid\=213998310](https://fr.wikipedia.org/w/index.php?title=Algorithmique&oldid=213998310) ».
[Catégories](/wiki/Cat%C3%A9gorie:Accueil "Catégorie:Accueil") : * [Algorithmique](/wiki/Cat%C3%A9gorie:Algorithmique "Catégorie:Algorithmique")
* [Nom dérivé d'un anthroponyme](/wiki/Cat%C3%A9gorie:Nom_d%C3%A9riv%C3%A9_d%27un_anthroponyme "Catégorie:Nom dérivé d'un anthroponyme")
* [Branche des mathématiques](/wiki/Cat%C3%A9gorie:Branche_des_math%C3%A9matiques "Catégorie:Branche des mathématiques")
Catégories cachées : * [Page utilisant un modèle Bases inactif](/wiki/Cat%C3%A9gorie:Page_utilisant_un_mod%C3%A8le_Bases_inactif "Catégorie:Page utilisant un modèle Bases inactif")
* [Page utilisant P3219](/wiki/Cat%C3%A9gorie:Page_utilisant_P3219 "Catégorie:Page utilisant P3219")
* [Page pointant vers des bases externes](/wiki/Cat%C3%A9gorie:Page_pointant_vers_des_bases_externes "Catégorie:Page pointant vers des bases externes")
* [Page pointant vers des dictionnaires ou encyclopédies généralistes](/wiki/Cat%C3%A9gorie:Page_pointant_vers_des_dictionnaires_ou_encyclop%C3%A9dies_g%C3%A9n%C3%A9ralistes "Catégorie:Page pointant vers des dictionnaires ou encyclopédies généralistes")
* [Page utilisant le modèle Autorité inactif](/wiki/Cat%C3%A9gorie:Page_utilisant_le_mod%C3%A8le_Autorit%C3%A9_inactif "Catégorie:Page utilisant le modèle Autorité inactif")
* [Article contenant un appel à traduction en anglais](/wiki/Cat%C3%A9gorie:Article_contenant_un_appel_%C3%A0_traduction_en_anglais "Catégorie:Article contenant un appel à traduction en anglais")
* [Portail:Informatique théorique/Articles liés](/wiki/Cat%C3%A9gorie:Portail:Informatique_th%C3%A9orique/Articles_li%C3%A9s "Catégorie:Portail:Informatique théorique/Articles liés")
* [Portail:Informatique/Articles liés](/wiki/Cat%C3%A9gorie:Portail:Informatique/Articles_li%C3%A9s "Catégorie:Portail:Informatique/Articles liés")
* [Projet:Mathématiques/Articles](/wiki/Cat%C3%A9gorie:Projet:Math%C3%A9matiques/Articles "Catégorie:Projet:Mathématiques/Articles")






* La dernière modification de cette page a été faite le 5 avril 2024 à 22:08\.
* [Droit d'auteur](/wiki/Wikip%C3%A9dia:Citation_et_r%C3%A9utilisation_du_contenu_de_Wikip%C3%A9dia "Droit d'auteur") : les textes sont disponibles sous [licence Creative Commons attribution, partage dans les mêmes conditions](https://creativecommons.org/licenses/by-sa/4.0/deed.fr "Licence Creative Commons Attribution - partage dans les mêmes conditions 4.0 international") ; d’autres conditions peuvent s’appliquer. Voyez les [conditions d’utilisation](https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/fr "Conditions d’utilisation de la Wikimedia Foundation") pour plus de détails, ainsi que les [crédits graphiques](/wiki/Wikip%C3%A9dia:Cr%C3%A9dits_graphiques "Droit d'auteur de certaines icônes"). En cas de réutilisation des textes de cette page, voyez [comment citer les auteurs et mentionner la licence](/wiki/Sp%C3%A9cial:Citer/Algorithmique "Citer ou réutiliser cette page").  

Wikipedia® est une marque déposée de la [Wikimedia Foundation, Inc.](https://wikimediafoundation.org/ "Wikimedia Foundation"), organisation de bienfaisance régie par le paragraphe [501(c)(3\)](/wiki/501c "501c") du code fiscal des États\-Unis.


* [Politique de confidentialité](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr)
* [À propos de Wikipédia](/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia)
* [Avertissements](/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux)
* [Contact](//fr.wikipedia.org/wiki/Wikipédia:Contact)
* [Code de conduite](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct)
* [Développeurs](https://developer.wikimedia.org)
* [Statistiques](https://stats.wikimedia.org/#/fr.wikipedia.org)
* [Déclaration sur les témoins (cookies)](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement)
* [Version mobile](//fr.m.wikipedia.org/w/index.php?title=Algorithmique&mobileaction=toggle_view_mobile)


* [![Wikimedia Foundation](/static/images/footer/wikimedia-button.svg)](https://wikimediafoundation.org/)
* [![Powered by MediaWiki](/static/images/footer/poweredby_mediawiki.svg)](https://www.mediawiki.org)







* 






