Big Oh notation (Landau symbols)

In summary, the notation f(n)=O(g(n)) is a sloppy notation that was introduced by physicists. It is more accurate to write f(x)\in O(g(x)) but it is not necessary to do so.f
  • #1
706
17
I have a question with respect to the Big Oh notation, in which the Landau symbol [tex]O(n)[/tex] is involved.
The Landau symbol [itex]O(n)[/itex] is defined as:

[tex]f(n)=O(g(n))[/tex] if there exists an integer [tex]n_0[/tex] and a constant [tex]C>0[/tex]
such that for all integers [tex]n \geq n_0[/tex], [tex]f(n) \leq C \cdot g(n)[/tex].

For example [tex]f(n)= 5 \cdot n = O(n)[/tex].
Now the equality sign is not to be understand as an equality sign in the common sense, but rather as [tex]f(n) \in O(n)[/tex], see Big Oh Fallacies and Pitfalls and
the Wikipedia article.

( [itex]5 \cdot n = O(n)[/itex] and [itex]2 \cdot n = O(n)[/itex], but [itex] 5 \cdot n \neq 2 \cdot n[/itex])

So it would be better to think of [tex]O(n)[/tex] as a set of functions.

My question:
Does anyone know why it became common to use the notation f(n)=O(g(n))?
I remember my professor mentioning that physicists introduced this sloppy notation.
 
Last edited:
  • #2
Yes usually I use ~ notation. But I have no idea why anyone introduced that notation, I HATE it.
 
  • #3
Well, Landau was a physicist, but I didn't know it was him who introduced the notation.

Certainly, if we write [itex]f(x)=O(g(x))[/itex], we mean that f belongs to the class of function for which there exists a C with [tex]f(x) \leq C \cdot g(x)[/tex] for some x_0 onward. So yes, IMHO, writing [itex]f(x)\in O(g(x))[/itex] would be more accurate, but it would not make sense to write things like

[tex]f(x)=\sum_{k=0}^{n-1}\frac{f^{(k)}(0)}{k!}x^k+O(x^n)[/tex]

We would have to write

[tex]f(x)=\sum_{k=0}^{n-1}\frac{f^{(k)}(0)}{k!}x^k+g(x) \ \ \ \ \ \ \ \mbox{where} \ g(x)\in O(x^n)[/tex]

There is no ambiguity in the first formula. It reads "f(x)=sum plus some function for which there exists a C with [tex]f(x) \leq C \cdot g(x)[/tex] for some x_0 onward". In the second, we gain in rigor but loose a little bit of gut feeling for the equation. Personally, I'm fine with the original notation.
 
Last edited:
  • #4
I write, for example:

[tex] O( ln(n^2)) = O(ln (n)) [/tex]

and I never thought to write:

[tex] ln( n^2) = O(ln(n)) [/tex]

I liked quasar's post, and I agree with the conclusion that the gain in rigor is not worth the extra effort. Compare with the hyper-common:

"A topological space is a pair [tex] (X,\tau) [/tex] satisfying...

...now let [tex] X [/tex] be a topological space..."
 
  • #5
I write, for example:


"A topological space is a pair [tex] (X,\tau) [/tex] satisfying...

...now let [tex] X [/tex] be a topological space..."

Well, there's nothing wrong with that quite yet! :wink:
 
  • #6
Well, is this overload of the equality sign any more grievous than the programmers' assignment operation i=i+1?
 

Suggested for: Big Oh notation (Landau symbols)

Replies
1
Views
584
Replies
4
Views
705
Replies
6
Views
2K
Replies
5
Views
878
Replies
30
Views
4K
Replies
4
Views
913
Back
Top