# Algorithm complexity analysis

1. ### sparkster

153
I'm trying to teach myself some algorithm complexity and I've run into a problem. I'm starting to understand about O and o notation and big theta notation. I've run into notations like O(n^2 M(n)). Does this mean that the complexity is n^2 times whatever M(n) means? (Natural next question) what does M(n) mean?

2. ### Edgardo

687
Let f(n) and g(n) be two functions (since you mentioned algorithms I assume f(n) and g(n) are only positive, e.g. f(n) and g(n) stand for run times). Let's say we have the relationship f=O(g(n)). This means there are constants c and n0 such that:

$$f(n) \leq c \cdot g(n)$$ for all $$n \geq n_0$$

Example:
f(n)=5*n
g(n)=n

We have to show that there are constants c and n0 such that:

$$5 n \leq c \cdot n$$ for all $$n \geq n_0$$

This is the case for c=5 and n0=1. Thus,
f(n)=O(g(n)) or
5*n=O(n)

It shouldn't be a problem to translate this to your complexitiy O(n^2 M(n)) where M(n) seems to be some function.

Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?