Asymptotic Notation

Asymptotic notation is a way of expressing the cost of an algorithm. Goal of Asymptotic notation is to simplify Analysis by getting rid of unneeded information

Following are the asymptotic notation:

 Big–Oh Notation (O) : >> O(g(n)) = { f(n) : there exist positive constants c and n0 such that 0 < f(n) < c*g(n) for all n > n0 }. >> It is asymptotic upper bound. >>The function f(n) = O(g(n)) iff there exist positive constants c and n0 such that f(n) ≤ c * g(n) for all n, n ≥ n0. >> The statement f(n) = O(g(n)) states only that g(n) is an upper bound on the value of f(n) for all n, n ≥ no. >> Eg : 1. 3n + 2 = O(n) 3n + 2 ≤ 4n for all n ≥ 2. 2. 3n + 3 = O(n) 3n + 3 ≤ 4n for all n ≥ 3. 3. 100n + 6 = O(n) 100n + 6 ≤ 101n for all n ≥ 6. Omega Notation (Ω) >> Ω (g (n)) = { f(n) : there exist positive constants c and n0 such that 0 < c * g(n) < f(n) for all n > n0 } >> Asymptotic lower bound. >> The function f(n) = Ω(g(n)) iff there exist positive constants c and n0 such that f(n) ≥ c * g(n) for all n, n ≥ n0. >> The statement f(n) = Ω(g(n)) states only that g(n) is only a lower bound on the value of f(n) for all n, n ≥ no. >> E.g. 1. 3n + 2 = Ω(n) 3n + 2 ≥ 3n for all n ≥ 1. 2. 3n + 3 = Ω(n) 3n + 3 ≥ 3n for all n ≥ 1. 3. 100n + 6 = Ω(n) 100n + 6 ≥ 100n for all n ≥ 0. Theta Notation (Θ) >> Θ(g(n)) = { f(n) : there exist positive constants c1 and c2 and n0 such that 0 < c1 * g(n) < f(n) < c2  * g(n) for all n > n0 } >> The function f(n) = Θ(g(n)) iff there exist positive constants C1, C2 and n0 such that C1 * g(n) ≤ f(n) ≤ C2 * g(n) for all n, n ≥ n0. >> E.g. 1. 3n + 2 = Θ(n) 3n + 2 ≥ 3n for all n ≥ 2. 3n + 2 ≤ 4n for all n ≥ 2. So, C1 = 3, C2 =4 & n0 =2. >> The statement f(n) = Θ(g(n)) iff g(n) is both an upper and lower bound on the value of f(n). Little oh Notation (o) >> o(g(n)) = { f(n) : for any positive constant c>0 , there exists a constant n0 such that 0 < f(n) < c  * g(n) for all n > n0 } >> We use o notation to denote an upper bound that is not asymptotically tight. >> The definitions of O-notation and o-notation are similar. The main difference is that in f(n) =O(g(n)), the bound 0 < f(n) < c*g(n) holds for some constant c>0 but in f(n) =O(g(n)), the bound 0 < f(n) < c *g(n) holds for all constants c > 0. Little omega Notation (w) >> w(g(n)) = { f(n) : for any positive constant c>0 , there exists a constant n0 such that 0 < c * g (n) < f(n) for all n > n0 } >> We use w notation to denote an lower bound that is not asymptotically tight.