1 notations asymptotiques et complexité notations asymptotiques : 0 et complexité des algorithmes...

Click here to load reader

Post on 04-Apr-2015

110 views

Category:

Documents

3 download

Embed Size (px)

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