0% ont trouvé ce document utile (0 vote)
37 vues3 pages

Correction TD Complexite

Transféré par

Ines Ines
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues3 pages

Correction TD Complexite

Transféré par

Ines Ines
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice 1

Réponse

Sur des machines réalisant 106 opérations/sec, les temps d’exécution des algorithmes A0..A6 ,
selon leurs complexités et la taille des problèmes(10, 100et 1000), sont donnés dans le tableau
suivant:

Exercice 2

Pour i de 1 a n faire
A[i] := 0 n fois
1 aff +
Pour j de 1 a n faire
A[i] := A[i] + B[i; j] n fois
D[i; j] := 0 2 aff+ 1 add+1 comp + max
Si B[i; j] > 0 alors
Pour k de 1 a n faire
1aff
n fois
D[i; j] := D[i; j] + +1add
B[i; k] *C[k; j] 1Aff+ 1add+1mult
Finpour
Sinon D[i; j] := B[i; j] + C[i; j]
Finpour
Finpour

∑ {1+∑[4+ max(2, ∑3)]} = n{1+n[4+(3n)]} = 3n3 4+n2 +n = O(n3)

Exercice 4

Question
1. Soient les deux fonctions suivantes :
f(n) = n3/2
g(n) = 37n2 + 120n + 17
Montrer que : g(n) ϵ O(f(n))

Preuve : D’après la définition de la notation de complexité grand-O


On dit que T(n) est en O(f(n)) si seulement s’il existe un entier n0 et une
constante c > 0 tel que pour tout n ≥ n0, on a : T (n) ≤ cf(n)

Cherchons n0 tel que n3/2 > (37n2 + 120n + 17) revient à résoudre l’inéquation :
n3/2 – (37n2 + 120n + 17) > 0
la résolution donne n3/2 > (37n2 + 120n + 17) pour tout n ≥ n0= 78, c=1, et n ≥ n0= 10,
c=0.1

2. En utilisant les limites, trouver une relation, en notation asymptotique, entre les
deux fonctions suivantes :

f(n) = 5n3 + 30n2 f(n) est O(n3)


g(n) = 2n + 3n log n g(n) est O(n3 log n)
2 3

f(n) est O(g(n))

3. En utilisant les propriétés de la notation Grand-O, simplifier les expressions


Suivantes :

a. O(f(n) log f(n) + n)


b. O(n2 + f(n) log f(n) + n log n + f(n)2)
c. 3n3 + 2n2f(n)2 + O(n2 + nf(n))

f(n) = O(1) f(n) = O(n) f(n) = O(n2)


O(f(n) log f(n) + n) O(n) O(n log n) O(n2log(n2)
O(n2 + f(n) log f(n) O(n2 ) O(n2 ) O(n4)
+ n log n + f(n)2)
3n3 + 2n2f(n)2 + O(n3 ) O(n4 ) O(n6 )
O(n2 + nf(n))

Exercice 5

Question
1. Proposer une comparaison des deux algorithmes suivants :
A : TA(n) = 100n3
B : TB(n) = n4

Réponse

Pour n =100, TA(n) = TB(n) ; les deux algorithmes ont la même complexité,
Si n < 100 alors TB(n) < TA(n)
Si n > 100 alors TA(n) < TB(n)

On cherche l’algorithme le plus efficace ente A et B, on s’intéresse alors aux grandes valeurs
de n , (TA(n)> TB(n)) on dit que TA(n) est en O(TB(n)),

Exercice 6

Questions
Partant de la propriété suivante : f(n) = O(g(n)) )  O(f(n) + g(n)) = O(g(n)) simplifier les
expressions suivantes :
1— O(n + log n)
2— O(n2 + nlog n)
3— O(nk + nrlog n), k, r entiers > 0 ;
4— O(log n + (log n)2)
5— O( n log n + √𝑛)
6— O(n! + Cn), C entier > 0.

Reponses

1— O(n + log n) = O(n)


2— O(n2 + nlog n) = O(n2)
3— O(nk + nrlog n) = O(max(nk, nrlog n))
= O(max(nk, nrlog n))
4— O(log n + (log n)2)= O((log n)2)
5— O( n log n + √𝑛)= O( n log n )
6— O(n! + Cn)= O(n!)

Vous aimerez peut-être aussi