Académique Documents
Professionnel Documents
Culture Documents
Complexité et optimalité
2.1 Introduction
Pour que le résultat de l’analyse de la complexité d’un algorithme soit pertinent, il faut avoir
un modèle de machine sur laquelle l’algorithme sera implémenté (sous forme de programme).
On prendra comme référence un modèle de machine à accès aléatoire (RAM) et à processeur
unique, où les instructions sont exécutées l’une après l’autre, sans opérations simultanées.
Exemples :
- Si le tri du tableau a une complexité 𝑓(n) =𝑎𝑛+𝑏, on dira que le tri possède une
complexité linéaire.
- Si un autre algorithme de tri possède une complexité 𝑓(n) =𝑛2, alors on considèrera
que ce tri a une complexité quadratique.
1
2.4 Objectifs de calcul de la complexité
1. Pouvoir prévoir le temps d'exécution d'un algorithme
2. Pouvoir comparer deux algorithmes réalisant le même traitement
Le plus souvent, on utilise la complexité au pire, car on veut borner le temps d'exécution.
2
Figure : Comportement asymptotique 𝑛 → ∞
Exemple 2 :
3
Algorithme tri_insertion ; Coût Nombre
Var n, i, j, x : entier; d’itérations
A: tableau;
Debut
Pour j allant de 2 à n faire c1 n
debut pour
x ← A[j]; c2 n-1
i← 𝑗 − 1; c3 n-1
𝑛
tant que i > 0 et A[i] > x faire c4 ∑ 𝑡𝑗
𝑗=2
debut tant que 𝑛
∑ (𝑡𝑗 − 1)
𝑗=2
A[i+1] ← A[i]; c5
𝑛
c6 ∑ (𝑡𝑗 − 1)
i← i-1; 𝑗=2
fintant que
A[i+1] ← x; c7
n-1
Finpour
Fin
Complexité
= (c1+c2+c3+c4)*n- (c2+c3+c4+c7)
= An+B
4
𝑛(𝑛+1)
T(n)= c1* n +c2 *(n-1)+ c3 *(n-1) +c4 ∗ ( − 1 ) + c5 ∗
2
𝑛(𝑛−1) 𝑛(𝑛−1)
+ c6 ∗ + c7 * (n − 1)
2 2
𝑐4 𝑐5 𝑐6 𝑐4 𝑐5 𝑐6
T(n)= ( 2 + + )n2 +(𝑐1 + 𝑐2 + 𝑐3 + − − + 𝑐7)n-
2 2 2 2 2
(c2+c3+c4+c7)
= An2 + Bn+ C
La complexité est d’ordre O(n2 ).