Vous êtes sur la page 1sur 3

Td : Complexité algorithmique

Exercice 1 :

1. Montrer que si f(n)=(n+1)2 alors f(n)= O(n2).


2. Montrer que T(n)=3n3+2n2 = O(n3).
3. Pour chacun des fonctions Ti(n) suivant, déterminer sa complexité asymptotique dans
la notation Grand-O. Exemple : T0(n)=3n ϵ O(n).
a. T1(n)=6n3+10n2+5n+2
b. T2(n)=3log2n+4
c. T3(n)=2n+6n2+7n
d. T4(n)=7k+2
e. T5(n)= 4 log2n+n
f. T6(n)= 2 log10k+kn2

Exercice 2 :

La multiplication des deux matrices quadratiques de taille n donne la matrice C quadratique

de taille n:

1. Ecrire un algorithme qui effectue la multiplication des deux matrices quadratiques A et B et


stocke les résultats en C.

2. Déterminer la fonction de temps maximale (”worst case”) T(n) pour des matrices de taille n
(vous devez calculer le nombre d’opérations)

3. Déterminer la complexité asymptotique pour calculer des matrices de taille n.

Exercice 3 :

On propose d’implémenter un algorithme qui sauvegarde les permutations possibles d’un


ensemble des n éléments distincts {1, 2, …, n} dans une matrice PERMUT de largeur n.
Par exemple pour l’ensemble (1, 3, 2) la matrice PERMUT est :

123

132

213

231

312

321

1) Quel est le nombre de permutations attendues ? quel serait alors la longueur de la matrice

PERMUT ?

2) Donner une idée d’implémentation de l’algorithme.

3) Donner le code d’implémentation (notation algorithmique ou un langage choisi)

4) Quel est la complexité du programme proposé.

Exercice 4 :

Considérer les deux algorithmes A1 et A2 avec leurs temps d’exécution T1(n)= 9n 2 et


T2(n)=100n+96 respectives.
1. Déterminer la complexité asymptotique des deux algorithmes dans la notation Grand-
O
Quel algorithme a la meilleure complexité asymptotique ?
2. Montrer que vos solutions sont correctes en spécifiant un c et n0 par algorithme afin
que la relation suivante soit satisfaite :
O(f)= {g| ∃ c>0 : ∃ n0>0 : ∀ n≥n0 : g(n) ≤ c .f(n)}
3. Calculer les temps maximales d’exécutions des deux algorithmes Ti(n) pour n=1, n=3,
n=5, n=10, n=14.
4. Tracer l’allure des graphes des deux fonctions Ti dans un même système de
coordonné (abscisse n, ordonné Ti(n)).
5. A partir de quelle valeur n l’algorithme A2 est plus efficace ? (calculer l’intersection)
6. Quelle est la complexité asymptotique de l’algorithme suivant ?

Début
Appeler A1 {ici l’algorithme 1 est exécuté.}
Appeler A2 {ici l’algorithme 2 est exécuté.}

Fin
Exercice 5 :
1. Ecrire une fonction qui permet de retrouver le maximum des éléments d’un tableau T
d’éléments. Donner la complexité de l’algorithme A1 qui appelle cette fonction.
2. On suppose qu’on a un tableau d’entier trié dans l’ordre croissant. On désire chacun
un élément e.
a. Ecrire une fonction trouve qui retourne vrai si l’élément est trouvé, faux si non.
b. On va utiliser la recherche dichotomique : il s’agit de comparer l’élément à
rechercher par l’élément au milieu, s’il est inférieur, on cherche seulement dans la
branche gauche, s’il est supérieur, on cherche dans la branche droite, et ainsi de
suite.
c. Présenter ce principe graphiquement, donner la complexité en termes de nombre
de comparaisons effectuées.

Quel est l’algorithme le moins complexe (recherche simple ou recherche dichotomique).

Vous aimerez peut-être aussi