Université François Rabelais de Tours
Laboratoire de Mathématiques et Physique Théorique
Mathématiques Discrètes et Algorithmique
UE 5-4 Option Semestre 5
3. Complexité
La théorie de la complexité vise à savoir si la réponse à un problème peut être donnée efficacement ou, au
contraire être inatteignable en pratique. Pour cela, elle se fonde sur une estimation théorique des temps
de calcul et de la mémoire utilisée. Nous ne considérerons ici que l’estimation du temps de calcul. Il y en
a deux types :
•Etude du cas le plus défavorable : On estime le nombre d’opérations nécessaires à la complétion de
l’algorithme dans le pire des cas (on supposera toujours que le nombre de boucles est maximum)
•La complexité en moyenne : On estime le nombre moyen d’opérations nécessaires à la complétion de
l’algorithme en fonction de toutes les entrées possibles.
La complexité en moyenne est beaucoup plus difficile à calculer que l’autre. Nous nous concentrerons sur
la complexité dans le cas le plus défavorable.
Exemple 3.1. Considérons l’algorithme suivant qui détermine si l’élément xappartient à la liste Let si
oui, renvoie sa position.
Données : Liste (a1, a2, . . . , an),x
position := 0
i:= 1
pour i= 1 ànfaire
si x=aialors
retourner position := i
fin
fin
Résultat :position
Algorithme 8: Recherche d’un élément
Lorsque l’on écrit "retourner", cela signifie que l’algorithme s’arrête (on sort de la boucle pour) et renvoie
la valeur.
Complexité dans le pire des cas. A chaque étape de la boucle pour, on effectue 1 comparaisons. Dans
le pire des cas, c’est à dire si on parcourt la boucle n-fois, on aura fait ncomparaisons.
Complexité en moyenne Si xest le premier terme, 1 comparaisons sont nécessaires. Si xest en se-
conde position, 2 comparaisons sont nécessaires. En général, si xest en iième-position, on a besoin de i
comparaisons. Le nombre moyen de comparaison est donc
1+2+3+. . . +n
n=n+ 1
2
3.1. Comparaison de fonctions.
Définition 3.2. Soient f, g :R−→ R(ou N−→ R). On dit que fest O(g)si et seulement si il existe des
constantes C, k ∈Rtelles que
|f(x)| ≤ C|g(x)|pour tout x>k
On écrira quelque-fois f=O(g)ou encore f(x) = O(g(x)). On dit que Cet ksont les témoins de la
relation f=O(g).
Intuitivement, cette relation dit que fgrandit plus lentement qu’un multiple de g.
Exemple 3.3. Montrons que la fonction f(x) = x2+ 2x+ 1 est O(x2). Lorsque x > 1, on a
0≤x2+ 2x+ 1 ≤x2+ 2x2+x2= 4x2.
Par conséquence, si on choisit C= 4 et k= 1, on voit que f=O(x2).
1