This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1
1 Notations Asymptotiques Et Complexit Notations asymptotiques
: 0 et Complexit des algorithmes Exemples de calcul de
complexit
Page 2
2 Complexits d un algorithme Un algorithme partir d une donne
tablit un rsultat. La taille de la donne est mesure par un entier
n. complexit temporelle une fonction de n qui mesure le temps de
calcul pour une donne de taille n complexit en mmoire
Page 3
3 Complexits temporelles Dans le pire des cas : donne une borne
sur le temps de calcul pour toute donne de taille n En moyenne :
fait la moyenne des temps de calculs pour toutes les donnes de
taille n
Page 4
4 Mesure-t-on vraiment le temps de calcul ? Non, car le temps
de calcul dpend de la machine. Mesures effectues une constante
multiplicative prs Terme dominant
Page 5
5 Dfinitions On dit que f est du mme ordre de grandeur que g et
l'on note f = (g) lorsque f=O(g) et g=O(f). On dit que f est domine
par g (not f= O (g)) lorsque
Page 6
6 Dfinitions f est ngligeable devant g, (not f =o(g)) lorsque
f(n)/g(n) tend vers 0 quand n tend vers l'infini On dit que f est
quivalente g lorsque f(n)/g(n) tend vers 1 lorsque n tend vers
l'infini
Page 7
7 Polynmes et notations O et Soit P (n) un polynme en n. Pour
quelles valeurs de p a-t- on P(n)=O(n p )? Pour quelles valeurs de
p a-t-on P(n)= (n p )?
Page 8
8 Montrer que pour tout entier k, on a
Page 9
9 chelle De Comparaison Exercice Soient les fonctions f 1
(n)=n, f 2 (n)=2 n, f 3 (n)=n 2, f 4 (n)=2n, f 5 (n)=n n, f 6
(n)=log n, f 7 (n)=n!, f 8 (n)= nlogn Pour chaque couple i, j, dire
si lon a f i =o( f j ), f i =O( f j ), f i = ( f j ).
Page 10
10 10 9 Instructions/secondes
Page 11
11 En Une Journe on Peut Aller Jusqu ?
Page 12
12 Et En Un an ?
Page 13
13 Pourquoi Utiliser O Et Pour Mesurer Des Complexits?
Expressions une constante multiplicative prs, indpendante du temps
de calcul d une instruction de base Toute instruction de base prend
un temps un Terme dominant uniquement donc expression simple
Page 14
14 n, Cest quoi? La complexit sexprime en fonction de la taille
de la donne A vous de dire quelle fonction taille vous avez choisie
Et la donne cest quoi ?
Page 15
15 Rgle 1 Composition Squentielle I 1 complexit temporelle en
(f 1 (n)) I 2 complexit temporelle en (f 2 (n)) Le bloc
dinstructions I 1 ; I 2 a une complexit temporelle en (max(f 1
(n),f 2 (n))
Page 16
16 Rgle 2 If Else valuation de C est en (f(n)) De I 1 en (f 1
(n)), de I 2 en (f 2 (n)) Alors la complexit de linstruction if C I
1 else I 2 ; est en O(max(f(n),f 1 (n),f 2 (n))
Page 17
17 Rgle 3 Boucle for I 1 a une complexit temporelle en (f 1
(n)) I 1 na aucun effet sur les variables i et n. La complexit
temporelle de la boucle for (int i=1 ; i< = n ; i++){ I 1 } est
en (n(f 1 (n))
Page 18
18 Si une instruction I se trouve au cur de k boucles for
imbriques, chacune d'elle de la forme for (int i=1 ; i < n ;
i++), combien de fois l'instruction I est elle excute ?
Page 19
19 Si une instruction I se trouve au cur de k boucles for
imbriques, chacune d'elle de la forme for (int i j =1 ; i j < i
j -1 ; i++), (avec i 0 =n), combien de fois l'instruction I est
elle excute ?
Page 20
20 Rgle 4 Boucle While valuation de C en (f 1 (n)) I en (f 2
(n)) Boucle while est excute (g(n)) while C {I} est en (g(n)*max(f
1 (n),f 2 (n)))
Page 21
21 Estimer les complexits des morceaux de codes suivants,
sachant que et l instruction est en (1) et ne modifie pas les
entiers i, j, k et n for (int i=1 ; i < n ; i++) { for (int
j=i+1 ; j