Algorithm complexity analysis

  1. 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. jcsd
  3. 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:

    [tex]f(n) \leq c \cdot g(n)[/tex] for all [tex]n \geq n_0[/tex]

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

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

    [tex]5 n \leq c \cdot n[/tex] for all [tex]n \geq n_0[/tex]

    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 a link to this question via email, Google+, Twitter, or Facebook

Have something to add?