¿Qué significa cuando una función es seguida por la notación big-O?

Big-Oh de algo es formalmente un conjunto de funciones. La frase “la función f es O (n ^ 2)” es la abreviatura de ” f pertenece al conjunto de todas las funciones que crecen como máximo tan rápido como n ^ 2″.

En un espíritu similar, ” f es g + O ( h )” es la abreviatura de ” f es la suma de g y alguna función que pertenece a O ( h )”. En otras palabras, es lo mismo que escribir ” fg es O (h)”.

¿Por qué / cuándo es útil esto? En cualquier situación en la que desee dar una estimación más precisa. Por ejemplo, decir “este algoritmo realiza comparaciones 3n + O (1)” es más preciso que decir “este algoritmo realiza comparaciones O (n)”.

Otro ejemplo: para x cerca de cero tenemos

[matemáticas] \ sen x = x – x ^ 3/6 + O (x ^ 5) [/ matemáticas]

La declaración anterior tiene el siguiente significado: “El valor [matemático] \ sen x [/ matemático] es aproximadamente igual al valor [matemático] x – x ^ 3/6 [/ matemático]. El error cometido por esta aproximación está activado el orden de [matemáticas] x ^ 5 [/ matemáticas] (que es muy pequeño en comparación con x ) “.

El ejemplo en la publicación de apertura ([matemáticas] f (x) = 1 / 2x + 1 / 3x + O (n) [/ matemáticas]) significaría algo como
[math] \ existe n_0, M \ in \ mathbb {R} [/ math] tal que [math] | f (x) | \ leq1 / 2x + 1 / 3x + M | n |, \ quad \ forall n \ geq n_0. [/ math]
Pero en general sospecho que te encuentras con una notación descuidada. El CS big-O generalmente se refiere a llevar la función al infinito, mientras que en matemáticas es más común definir un límite diferente:
[matemáticas] f (x) \ en O (g (x)), ~ x \ a a [/ matemáticas] si y solo si [matemáticas] \ lim_ {x \ a a} \ frac {f (x)} { g (x)} [/ math] converge.