Académique Documents
Professionnel Documents
Culture Documents
T(n) =
1 +1 (initialisation de result et i)
+2*n (n itérations, avec deux affectations (i et result)
+1*n (n itérations, avec une comparaison (test de la boucle) par itération)
+1 (instruction RETOURNER)
= 3n+3 O(n)
2. Approximation de chacune des étapes
PROCEDURE sum( n: Nat, S: Entier[] ): Entier
DEBUT result <- 0; i <- 1;
Tant que (i < n) FAIRE
result <- result + S[i];
i <- i+1;
FIN
RETOURNER( result )
FIN
• Instruction conditionnelle:
f(…)
{ si (…) alors g(…) ;
Sinon h(…) ;
finsi ;
}
Coût de f(…)=MAX (coût de g(…), coût de h(…))
Estimation du coût d’un algorithme itératif
Règle 4: Instructions de répétition
f(…, n :entier)
{ pour i :=1 à n faire
g(…) ;
}
Coût de f(…,n)= n x coût de g(…)
𝑘
• 𝑪𝒐û𝒕 𝒅𝒆 (𝒇 … , 𝒏) = 𝑖=1 ܿû(ࢍ(ݐn) )
Estimation du coût d’un algorithme itératif
• Plusieurs approches :
a) éliminer la récurrence par substitution de proche en proche
b) deviner une solution est la démontrer par récurrence
c) utiliser la solution de certaines équations connues
Etc…
Remarque sur les fonctions de coût à
plusieurs arguments
• Lorsque les données d’un algorithme sont caractérisées par plusieurs
arguments de tailles possiblement différentes, alors la fonction de
complexité résultante peut très bien dépendre de plusieurs arguments.
• Par exemple, soit la procédure suivante :
• f(n) = 3n +2 et g(n) = n
3n +2 <= c2n c2=4 n0>=1
3n +2 >= c1n c1=1 n0>=1
Θ(n2): n2
5n2+ 4n + 6
n2 + 5