- 10 -
Ordre de grandeur, notation O(...)
• Le nombre exact d'instructions est peu informatif
On cherche à caractériser la croissance de la fonction quand n varie
• Pour de grandes valeurs de n, une fonction linéaire finit toujours par être
inférieure à une fonction quadratique
• (5n2+n) et (4n2+3n) sont de la même famille (fonctions quadratiques)
(50n+8) est d'une "meilleure" famille (fonction linéaire)
• Ce qui compte, c'est donc la partie dominante ! On ne retient que le terme de
plus haut degré, et on ignore les coefficents constants
• Exemple : Nombre d'instruction I(n) = 5n2 + 3n + 127
Partie dominante I(n) est en O(n2)
• On dit que I(n) est du même ordre de grandeur que f(n) et on note
I(n) est en O(f(n)) si $ c, n0 tq " n ³ n0, I(n) £ cf(n)
"… finit par être majoré par un multiple de …"
• Exemples :
3n3 + 2n + 10 est en O(n3)
2n + 300n200 est en O(2n)
log10(n) + 212 est en O(ln(n))
0.0001n + log(n) est en O(n)
• Sur un ordinateur plus puissant, un algorithme quadratique s'exécutera
peut-être 5 fois plus rapidement.... mais il restera quadratique !