Académique Documents
Professionnel Documents
Culture Documents
Faculté NTIC
Département MI
Semestre 3
2022-2023
ASD: Algorithmique et Structures de Données
1. Pourquoi Analyser la Complexité des Algorithmes ????
Le but est:
2.4.2. Séquence
La complexité d’une séquence de n instructions "i" est égale à la somme des complexités
de chaque instruction "i" qui la compose. Coût Séquence(d)=∑i=1...n coût Instruction i(d)
2.4.3. Le choix
La complexité d’une instruction conditionnelle:
Si <condition> alors séquence1 sinon Séquence2 finsi,
2.4.3. Le choix
La complexité du choix est égale à la somme de la complexité d’évaluation de la
condition et la plus grande complexité entre la séquence d’instructions exécutée si la condition
est vraie et celle exécutée si la condition est fausse.
Coût Choix(d)= coût évaluation-condition(d) + Max (coûtséquence1(d), coûtséquence2(d))
2.4.4. Répétition
La complexité d’une boucle est égale à la somme de la complexité de la séquence
d’instructions qui constitue le corps de la boucle et celle de l’évaluation de la condition de
sortie. Coût Boucle(d)= coût évaluation-condition-sortie(d) + coût séquence(d)
En detail
Coût Boucle(d)= coût condition (d) * (Nbre-itération + 1) + coût séquence(d) * Nbre-itération
2.4.5. Sous-programme
Pour les appels de procédures/fonctions (sans récursivité), la complexité est égale à la
somme des complexités de chacune de ses instructions. Pour les procédures et fonctions
récursives, l’analyse donne en général lieu à la résolution de relations de récurrences.
Exemple 1:
Calculez la complexité= Nombre d’actions exécutées par le segment S du code suivant:
Pour i ← 2 jusqu’à n pas 1 faire
somme← somme + i
fin pour
Complexité Boucle: en détail, nous avons:
Coût Boucle(d)= coût condition (d) * (Nbre-itération + 1) + coût séquence(d) * Nbre-itération
Nbre-itération d’une boucle (Pour… faire ou Tant que… faire) avec pas =1 est:
Nbre-itération=V.F–V.I+1
(valeur finale de l’indice de parcours, moins sa valeur initiale, plus 1. Pour le code S :
Nbre-itération= V.F – V.I +1 = n − 2 + 1 = n−1.
La condition de sortie ds le code S est le test (i > n) qui est de θ (1), donc:
coût évaluation-condition-sortie(d) * (Nbre-iteration + 1)= (n−1 +1 ) θ (1)= n θ (1)