UMBB, Faculté des Sciences, Département d’informatique
Matière : Advanced Algo & Complexity
TD2 : Complexité algorithmique
Rappel : Si f, g mesurent la complexité algorithmique alors
Ex0:
1. L'égalité suivante est-elle vraie ? Justifiez votre réponse sans faire de calculs.
2. Déterminer l'expression simplifiée de chacune des sommes suivantes
Ex1:
On considère les deux algorithmes suivants :
Algorithme Exemple_1 Algorithme Exemple_2
Entrée : un entier n ≥ 1 Entrée : un entier n ≥ 1
Début Début
pour i ← 1 à n faire pour i ← 1 à n faire
pour j ← 1 à i faire pour j ← 1 à i faire
s ← i + j pour k ← 1 à j faire
afficher(s) s ← i + j + k
fin pour afficher(s)
fin pour fin pour
Fin fin pour
fin pour
Fin
Pour ces deux algorithme déterminer la complexité (nombre d’opérations élémentaires en
fonction de n).
Rem : On peut utiliser la formule suivante
1
Ex2:
Soit le pseudo code suivant :
1. Déterminer ce que fait l’algorithme.
Pour les questions 2,3 et 4 on utilisera un décompte détaillé.
2. Déterminer le nombre d’opérations dans le meilleur cas (x en première position).
3. Déterminer le nombre d’opérations dans le pire cas (x absent ou dernière position).
4. Donner la complexité asymptotique pour chaque cas.
Pour cette question on ne comptabilisera que les comparaisons.
5. En supposant que x apparaît exactement une fois avec probabilité uniforme dans la
matrice, calculer le nombre d’opérations moyen.
Ex3:
Déterminer la complexité asymptotique au pire des cas des algorithmes associés aux
problèmes suivants en complétant le tableau :
Algorithme associé au problème O( ? ) Justification
Somme de deux vecteurs de n éléments
Somme de deux matrices carrées d’ordre n
Produit de deux matrices carrée d’ordre n
Calcul itératif de la factorielle de n
Calcul itératif de la somme 1 + 2 + . . . + n
Insertion en tête d’une liste chaînée simple de taille n
Insertion en tête d’un tableau de taille n
2
Insertion à la fin d’une liste chaînée simple de taille n
Insertion à la fin d’un tableau de taille n
Tester si un nombre n est pair ou impair
Ex4:
Les formules 2n+1=O(2n) et 22n=O(2n) sont elles correctes. Justifier.
Ex5:
Pour les paires de fonctions suivantes, indiquez si f ∈ O(g) ou g ∈ O(f) ou les deux.
Prouvez vos affirmations (il n’est pas demandé de prouver un résultat négatif).
Ex6 :
On dispose des temps d’exécution (en millisecondes) de trois algorithmes A 1,A2,A3 pour
différentes tailles d’entrée n :
Pour chacun des trois algorithmes, déterminez la complexité asymptotique en notation O.
Justifiez votre choix en identifiant des valeurs témoins (witness values).