Vous êtes sur la page 1sur 2

Fiche de Travaux Dirigés N◦ 1

SEMESTRE 1 Filière : SIGMA Niveau : II Mai 2022

Structures de Données

Complexité des algorithmes

Rappel :
— On dit qu’une fonction f est un grand O d’une fonction g, et on note f (x) = O(g(x)) lorsque

∃C, k > 0 ; |f (x)| ≤ C|g(x)|, ∀x > k.

— Les fonctions f et g sont dites de même ordre lorsque f (x) = O(g(x)) et g(x) = O(f (x)).
Le théorème suivant est très important.
Théorème :
Si
f (x)
lim = b, et b > 0
x→+∞ g(x)
alors, f (x) = O(g(x)) et g(x) = O(f (x)) (i.e. f et g sont de même ordre).
Si
f (x)
lim =0
x→+∞ g(x)

alors, f (x) = O(g(x)) mais g(x) n’est pas un grand O de f (x).


Exercice 1
(1) Parmi les fonctions suivantes, quelles sont celles qui ont même ordre ?

(a) f1 (n) = 4n3 + n ; (c) f3 (n) = n2 log3 (n) + 6n3 ;


n(n2 +1)
(b) f2 (n) = n2 + log2 (n) ; (d) f4 (n) = 2 .

(2) Montrer en utilisant la définition que f (n) + g(n) = O(max(f (n), g(n)).
(3) Montrer en utilisant la définition que 3n2 + 4n + 6 = O(n2 ).
Exercice 2
Soit a > 1. Montrer que loga (n) = O(n) mais que n n’est pas un grand O de loga (n).
Exercice 3
Montrer que dans la liste de fonctions ci-dessous, chaque fonction est grand O des fonctions qui
sont situées plus à droite mais n’est pas grand O des fonctions situées plus à gauche.

1, log(n), n, n log(n), n2 , n3 , n4 , . . . , 2n , 3n , 4n , . . . , n!, nn .

Exercice 4
Soit f (x) = 4x2 + 3x + 7 + 6 · 3x + 5 log(x). Trouver une fonction g(x), la plus simple possible, telle que
f (x) = O(g(x)).
Exercice 5 Complexité en fonction du temps d’exécution
Considérer les algorithmes suivantes avec un temps d’exécution T (n) pour une longueur de données
n. Déterminer leurs complexités asymptotiques relatives et les classer par ordre de grandeur croissant.

Algorithme A1 : T (n) = 3n + 2. 1 Algorithme A6


Algorithme A2 : T (n) = 6. 2 début
2 3 pour i allant de 1 à 5 faire
Algorithme A3 : T (n) = 4n + n + 2.
4 executer A1
5 fin pour
6 fin

1
1 Algorithme A4 1 Algorithme A5
2 début 2 début
3 Executer A1 ; 3 pour i allant de 1 à n faire
4 Executer A2 ; 4 executer A3
5 Executer A3 ; 5 fin pour
6 fin 6 executer A1
. 7 fin

Exercice 6 Compter le nombre d’instructions


Évaluer la complexité des fonctions et des programmes suivants en donnant le nombre d’instructions
réalisées.

1 Algorithme A7 1 Fonction somme ( n : entier ) : entier


2 Var : a , b : entier 2 Var : i , res : entier
3 début 3 début
4 a ← 0 4 res ← 0
5 b ← 0 5 pour i allant de 1 à n faire
6 Ecrire ( a ) 6 res ← res + i
7 Ecrire ( b ) 7 fin pour
8 fin 8 somme ← res
. 9 fin

1 Fonction f1 ( n : entier ) : entier 1 Fonction f2 ( n : entier ) : entier


2 Var : i : entier 2 Var : i : entier
3 début 3 début
4 pour i allant de 1 à n faire 4 pour i allant de 1 à n faire
5 somme ( n ) 5 somme ( i )
6 fin pour 6 fin pour
7 fin 7 fin

1 Fonction f3 ( n : entier ) : entier


2 Var : i ,j , k : entier
3 début
4 pour i allant de 1 à n faire
5 pour j allant de 1 à n faire
6 pour k allant de 1 à n faire
7 instr ()
8 fin pour
9 fin pour
10 fin pour
11 fin

2/2

Vous aimerez peut-être aussi