2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Chapitre!6!:!Complexité!d’un!algorithme!
1.3. )Opérations)élémentaires)
On%appelle%opération(élémentaire%toutes%les%opérations%consistant%en%:%
•%une%déclaration%ou%une%affectation%de%variables%
•%une%opération%mathématique%ou%logique%
•%une%comparaison%ou%un%test%
•%%une%impression%ou%un%retour%de%valeur%
Dans%la%suite,%on%suppose%que%toutes%les%opérations%élémentaires%ont%le%même%temps%d'exécution,%que%
l'on%notera%oe%et%qui%dépend%du%langage%de%programmation%et%de%l'ordinateur%utilisés.%
1.4. )Calcul)de)complexité)
Pour%évaluer%la%complexité%d’un%algorithme,%on%peut% compter%le% nombre%d’opérations%élémentaires%
exécutées%par%cet%algorithme.%
Exemple%:%%
Calculons%la%complexité%de%l’algorithme%du%calcul%de%la%factorielle,%en%supposant%que%n≠0.%
Pour%cela,%on%compte%le%nombre%d’opérations%élémentaires%:%
def Factorielle(n):
r = 0 déclaration/affectation%:%1%oe%
if n == 0 : test/comparaison%:%1%oe%
return r
else :
for i in range(2,n+1): test%:%n × 1%oe%
r = r*i opération%mathématique%:%n × 1%oe%
return r retour%de%valeur%:%1%oe%
Le%temps%d’exécution%de%cet%algorithme%vaut%donc%:%
(3+2n)!×%oe-
1.5. )Complexités)au)meilleur)et)au)pire)des)cas)
Lorsque,%pour%une%valeur%donnée%du%paramètre%de%complexité,%le%temps%d'exécution%varie%selon%les%
données%d'entrée,%on%peut%distinguer%:%
•%la%complexité(au(pire(des(cas(:%cas%le%plus%défavorable,%où%le%temps%d’exécution%est%maximal%
•%la%complexité(au(meilleur(des(cas(:%cas%le%plus%favorable,%où%le%temps%d’exécution%est%minimal%
•%la%complexité(en(moyenne(:%comportement%standard%de%l’algorithme.%
En% général,% on% s'intéresse% à% la% complexité% au% pire% des% cas% car% on% souhaite% connaître% la% borne%
supérieure%du%temps%d'exécution%de%l'algorithme.%
Exemple%:%%
Si%on%cherche%un%élément%donné%dans%un%tableau%de%n%éléments%tous%distincts.%
Dans%le%pire%des%cas,%il%faudra%passer%en%revue%tous%les%éléments%:%la%complexité%au%pire%des%cas%
vaut%donc%n × oe.%
Dans% le% meilleur% des% cas,% on% trouve% l’élément% recherché% au% premier% essai%:% la% complexité% au%
meilleur%des%cas%vaut%donc%1 × oe.%
) )