Une introduction à la théorie de la notation Big-O

Une introduction à la théorie de la notation Big-O

1. introduction

Dans cet article, nous allons donner unintroduction to the mathematics of big-O notation, as well as show an example of a big-O proof.

2. Définition formelle

Definition:f(x) = O(g(x)) signifie qu'il existe deux constantes positives,x1 etc, telles que0 ≤ f(x) ≤ cg(x) pour tous lesx ≥ x1.

3. La première constante positive:x1

En disantf(x) = O(g(x)), nous disonsf of x is big-O g of x“.

Ne vous laissez pas tromper par le signe égal:f(x) est une fonction etO(g(x)) est un ensemble. Vous ne pouvez pas avoir une fonction égale à un ensemble. C’est comme dire que la Terre équivaut au système solaire. Cela ressemble plus à la Terrebelongsdans (l'ensemble des planètes qui composent) le système solaire. De même,f(x) belongs in a set of functions called O(g(x)) (big-Og dex).

Nous avons maintenant deux fonctions -f(x) etg(x). Fonctionsgrow at different speeds. Par exemple, une fonction quadratique croîtra plus rapidement qu'une fonction linéaire. Maissometimes, it takes some time for the quadratic to catch up!

Par exemple, si nous avonsa(x) = 2x2 + 2x + 1 etb(x) = 10x, nous auronsa(1) = 5 etb(1) = 10. Mais disons maintenant que nous choisissonsx = 15. Maintenant, nous avonsa(15) = 450 + 30 + 1 = 481 etb(x) = 150. De plus,for any value greater than x = 15, say x = 20, a(x) will be bigger than b(x). (c'est le bon moment pour se référer à la définition formelle; c'est la partiex ≥ x1).

Surtout pour le cas de la compréhension formelle de big-O,we don’t particularly care at which point a(x) began outgrowing b(x). Juste ce qu'il a fait, et qu'à partir de ce point, il continue d'être supérieur àb(x).

4. La deuxième constante positive:c

Nous avons vu ci-dessus comment il a fallu un certain temps àa(x) pour rattraperb(x). . Finalement, cela a pris du temps, mais cela a pris du temps.

La raison pour laquelle il pousse finalement plus vite est à cause du sterm2x2 . Ou, plus précisément, la partiex2 de celui-ci. This tells us that a(x) = O(x2). Utilisation des symboles de la définition d'origine:f(x) = a(x) etg(x) = x2.

Pour big-O, nous ne nous soucions pas des autres termes ena(x), ou de la constante2 dans le terme2x2.

En regardant à nouveau notre définition de la section 2, c'est là qu'intervient la constantec. We can scale g(x) by any positive constant - tant quef(x) reste plus petit que la version mise à l'échelle (au-delà d'un certain point,x ≥ x1).

Si nous prenonsd(x) = 3x3 + 2x + 10,, nous devrons trouver les valeurs dec etx1, telles qued(x) ≤ cx3 pour toutes les valeurs supérieures àx1. C'est exactement ce que nous faire dans la section 4.

5. Rassembler les pièces

Afin de prouverf(x) = O(g(x)), nous devons trouver deux constantes positives,c etx1, telles que0 ≤ f(x) ≤ cg(x) pour tous lesx ≥ x1. We need to find values for c and x1 such that the inequality holds.

Ce que cela signifie, c'est qu'au-delà d'un certain point, une version mise à l'échelle deg(x) sera toujours plus grande quef(x).

6. Exemple

Soit d(x) = 3x3 + 2x + 10.

Supposons que nous souhaitons prouver que d(x) = O(x3). Cela signifie que nous devons trouver deux entiers positifs,c etx1 tels que0 ≤ d(x) ≤ cx3  pour tous lesx ≥ x1.

Eh bien, nous savons que d(x) = 3x3 + 2x + 10 ≤ 3x3 + 2x3 + 10x3 = 15x3

so,

d(x) ≤ 15x3.

Donc, si nous définissonsx1 = 1 andc = 15, alors nous avons cela pour toutx ≥ x1, 0 ≤ d(x) ≤ cx3. Doncd(x) = O(x3).

Nous aurions pu trouver d'autres valeurs pourx1 etc qui satisfont la condition ci-dessus. Tout ce qui compte, c'est quethere exist values of x1 and c which satisfy the condition.

7. Conclusion

Dans cet article, nous nous sommes concentrés sur unintroduction to the theory of big-O notation.

Un regard plus pratique sur ce sujet peut êtrefound here.