   Main Page | See live article | Alphabetical index

(Knuth's notations)

The minute details of a function for arbitrary big values of its argument seldom matter. Often it is enough to compare its overall behaviour to standard sets of mathematical function so as qualify the function at hand along a restricted set of significant behaviours, such as bounded, oscillating, divergent, etc..., and to indicate the speed with which it reach this asymptotic behaviour.

For instance if a function reaches zero faster than a square integrable function, it is known that it has a well defined Fourier transform, no matter what the function actually looks like.

To thus classify functions, one recourse to the asymptotic notation. Knuth advocated the following notations (other notations hold in various contexts, e.g., Landau and Hardy notations):

• O-notation (big-oh)
• o-notation (little-oh)
• Ω-notation
• ω-notation
• Θ-notation

The notation is an equality between the function at hand, and the known function it behaves like or is compared to in the asymptotic limit. For instance g(x)(x2) means that the function g(x) behaves asymptotically like the function x2 (see below for the meaning of each notation).

The notation is highly conventionnal and must not be assigned any mathematical significance. For instance if g=Θ(f) and h=Θ(f) it does not mean that g=h. A better notation would be g∈Θ(f) as Θ(f) (and others) can be regarded as the set of functions sharing a common asymptotic behavior.

The O-notation means that the function is bounded from above by a function which varies like f, i.e.,

So that f=O(cste) means that f is eventually bounded and f=O(x) means that f does not grow faster than linear (sub-linear growth). It corresponds for functions in asymptotic limit to the relation ≤ between numbers.

The o-notation restricts the O-notation to mean that the function is bounded from above but that the bound is not tight, i.e., the function does not tend towards its o-reference. Formally:

so that for instance 2xn=O(xn) but is not o(xn). Also, xn=o(xm) if n while it is O if n≤m. It corresponds for functions in asymptotic limit to the relation > between numbers.

The Ω-notation is the counterpart of O-notation for functions bounded from below:

Likewise ω-notation is the counterpart of o-notation for functions bounded from below without converging towards their reference:

Finally, Θ-notation means there is an asymptotically tight-bound, i.e., that the function really behaves like its reference function:

The function can sandwiched by two representatives of its Θ-reference. For instance x2+x=Θ(x2). This means that for high enough values of x, the function x2+x behaves like x2 only and its linear part has became irrelevant or negligible. It corresponds for functions in asymptotic limit to the relation = between numbers.

These notations are widely used in algorithmy to estimate the complexity of an algorithm. In mathematics it is current to use the O-notation with the meaning of the Θ-notation.

Reference:

 D. E. Knuth. Fundamental Algorithms, vol. 1 of The Art of Computer Programming.  