** Big O**

Big O (often pronounced * order*) is an abstract function that
describes how fast a function grows as the size of the problem becomes large.
The order given by Big O is a * least upper bound* on the rate of growth.

We say that a function *T(n)* has order *O(f(n))* if there exist
positive constants *c* and *n _{0}* such that:

For example, the function *T(n) = 2 * n ^{2} + 5 * n + 100* has order

We don't care about performance for small values of *n*,
since small problems are usually easy to solve.
In fact, we can make that a rule:

** If the input is small, any algorithm is okay.**

In such cases, the simplest (easiest to code) algorithm is best.