Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Exemple
/*Permute les contenus de deux variables*/ /* Permute les contenus de deux variables*/
Var x, y, z: entier entier x, y
z←x x ← y-x
x ←y y ← y-x
y ←z x ← y+x
Notations:
𝑫𝒏 l’ensemble des données de taille n
T(n) le nombre d’opérations sur un jeu de données de taille n
Par exemple , pour la recherche séquentielle d’un élément x dans un tableau :
14 3 2 17 25 0 26 30 8 4
• Le meilleur cas , est que l’on trouve l’élément à la première comparaison. ( exp x = 14 )
• Le pire des cas est que l’on parcoure tous les éléments du tableau , et que l’élément recherché
se trouve le dernier ou ne s’y trouve pas. ( exp x = 4 ou x = 6 )
• Le cas moyen est que l’élément recherché se trouve à la 4éme , 5éme position par exemple.
Nous nous intéressons particulièrement au Pire des cas car c’est celui qui arrive le plus souvent. Les
deux autres cas ne posent vraiment pas grand problème.
4- Les notations O et Θ
Définition 1
Soient 𝑓 et 𝑔 deux fonction de N dans ℜ+∗ , s’il existe un réel c > 0 et un entier positif ( un rang
) 𝑛0 tel que
∀ 𝑛 > 𝑛0 , 𝑓(𝑛) ≤ 𝑐 × 𝑔(𝑛)
f(n)
Lim
n→∞
⁄g(n) = 𝟎
3) f n'est pas en O(g) si:
f(n)
Lim
n→∞
⁄g(n) = ∞
Exemple3
𝑓(𝑛) = 3𝑛 + 1 , 𝑔(𝑛) = 𝑛
Lim
n→∞
𝟑𝒏 + 𝟏⁄
𝒏 = 𝟑 ≠ 𝟎 , donc 3𝑛 + 1 𝑒𝑠𝑡 𝑒𝑛 (n)
5- Classes de complexité
La complexité est
O(T(n)) = max ( O( 𝑇1 (𝑛)), 𝑂(𝑇2 (𝑛)))
Exemple :
3- Cas d’un traitement conditionnel : Le temps d'exécution d'une instruction SI est le temps
d’exécution des instructions exécutées sous condition, plus le temps pour évaluer la condition.
Pour une alternative, on se place dans le cas le plus défavorable.
Si ( condition) alors
Traitement 1
Sinon
Traitement2
Fsi
/* O(T(condition))+max(O(traitement1),O(traitement2)) */
4- Cas d’un traitement itératif : Le temps d’exécution d'une boucle est la somme du temps pour
évaluer le corps et du temps pour évaluer la condition. Souvent ce temps est le produit du
nombre d'itérations de la boucle par le plus grand temps possible pour une exécution du corps.
• boucle tant que
• boucle Pour
Remarque : Pour les fonctions et procédures récursives , l’analyse donne en général lieu à la
résolution de relations de récurrences.
Exemple1
Exemple2
• A la deuxième itération ( i = 1 )
- L’action 4 est exécutée n-1 fois
- Et les actions 5 , 6 , et 7 sont exécutées n-2 fois
Etc ….
𝑛(𝑛+1)
Donc l’action 4 est exécutée : −1
2
𝑛(𝑛−1)
Sont exécutées
2
𝑛(𝑛+1) 𝑛(𝑛−1)
T(n) = 𝑛 + 4(𝑛 − 1) + −1+3( )
2 2
𝑛2 +𝑛 3𝑛2 −3𝑛
T(n) = 𝑛 + 4𝑛 − 4 − 1 + +
2 2
T(n) = 5𝑛 − 5 + 2𝑛2 − 𝑛
T(n ) = 2𝑛2 + 4𝑛 − 5
Autre méthode :
𝒏−𝟏 𝒏−𝟐 𝒏 𝒏−𝟏 𝒏−𝟐
= 𝒏 + 𝟒 ∑ 𝟏 + ∑(𝒏 − 𝒊 ) + 𝟑 ∑(𝒏 − 𝟏 − 𝒊 )
𝒊=𝟎 𝒊=𝟎 𝒊=𝟎
𝒏(𝒏 + 𝟏) 𝒏(𝒏 − 𝟏)
= 𝒏 + 𝟒𝒏 − 𝟒 + − 𝟏 +𝟑
𝟐 𝟐
𝒏𝟐 + 𝒏 + 𝟑𝒏𝟐 − 𝟑𝒏
= 𝟓𝒏 − 𝟓 +
𝟐
𝟒𝒏𝟐 − 𝟐𝒏
𝟓𝒏 − 𝟓 + = 𝟓𝒏 − 𝟓 + 𝟐𝒏𝟐 − 𝒏
𝟐
T(n ) = 𝟐𝒏𝟐 + 𝟒𝒏 − 𝟓
Exemple 3
for(i=1;i<=N;i++){
Res=X+Y+Z+Res;
if(T[i]+K < B)
// Action1
for(j =1;j<= N;j++)
Res = Res +T[j];
else
// Action2
Res=Res+T[i];
}
O( Op(n)) = O( n2 + n) = O( n2 )