# Algorithm complexity analysis

1. Jun 9, 2010

### sparkster

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. Jun 9, 2010

### Edgardo

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.