Académique Documents
Professionnel Documents
Culture Documents
Contrôle
n
1. Prouver que ∑ 3 est en O(3n ¿
k
k=0
2. Classer les fonctions suivantes par ordre croissant de leur valeur asymptotique:
2
log(n3 ¿ , 2n , n3 log n, √ n ! , 2 √ n
3. Donnez la complexité des programmes suivants. Vous donnerez une borne supérieure
avec un O dans un premier temps, puis vous affinerez votre calcul en utilisant la notation Θ.
Algorithme 1 Algorithme 2
1 pour i 1 à n faire 1 pour i 5 à n-5 faire
2 pour j 1 à i faire 2 pour j i-5 à i+5 faire
3 xx+3 3 x x+3
Algorithme 3 Algorithme 4
1 pour i 1 à n faire 1 for (i = n; i>1; i = i/2)
2 pour j 1 à i faire 2 for (j=0; j<i; j++)
3 pour k 1 à j faire 3 x = x+a
4 x x+a
Bon courage
Faculté d’Electronique et d’Informatique - Département d’informatique USTHB 2013-2014
Module : Algorithmique avancé et complexité
1ère année Master (R.S.D.) N. BENSAOU et C. IGHILAZA
Contrôle
n
1. Prouver que ∑ 3 est en O(3n ¿
k
k=0
k=0
On suppose que la complexité est vraie pour n et on montre qu’elle est vraie pour n+1
n +1
On montre que ∑ 3 est en O(3 )
k n+1
k=0
n +1 n
Ou bien
n
0 ≤ ∑ 3k ≤ c . 3 n
k=0
0
0≤∑ 3 ≤ c .3 vraie pour c≥1
k 0
k=0
On suppose l’inégalité est vraie pour l’ordre n et on montre qu’elle est vraie pour n+1
n+1 n
0 ≤ ∑ 3k =∑ 3k +3n +1 ≤ c .3 n+3 n+1
k=0 k=0
n n+1
Or c .3 + 3 =c . 3
n +1
( 13 + c1 ) ≤c . 3 n+1 1 1 3
si + ≤ 1 ce qui est vrai si c ≥ C . Q . F . D
3 c 2
2. Classer les fonctions suivantes par ordre croissant de leur valeur asymptotique:
2
log(n3 ¿ , 2n , n3 log n, √ n ! , 2 √ n
2
Classement : log(n3 ¿ ⊆ 2 √ n ⊆ n3 log n ⊆ √ n ! ⊆ 2n
3. Donnez la complexité des programmes suivants. Vous donnerez une borne supérieure
avec un O dans un premier temps, puis vous affinerez votre calcul en utilisant la notation Θ.
Algorithme 3 Algorithme 4
1 pour i 1 à n faire 1 for (i = n; i>1; i = i/2)
2 pour j 1 à i faire 2 for (j=0; j<i; j++)
3 pour k 1 à j faire 3 x = x+a
4 x x+a
4. n log n une fois qu’on sait que diviser le travail à chaque it ération introduit du log dans les co ûts.
Mais en fait, ce code est dans Θ(n) car la boucle interne s ’arr ête à i et pas à n. Donc, si on compte les
itérations faites par j dedans on trouve :1+2+4+8+…+n.
Autrement dit si on pose n=2k,
k
k 2 k k
Contrôle - durée 30 mn
Exercice 1.-
2 2
n log (n)+n +log (n)
n+ 1
Exemple :
A: 4 3 7 3 5 4 2 3
A: 4 3 7 5 2