Skip to content
Part IA Lent Term

Little-o and Little-ω

Little-o: Strictly Slower Growth

f(n)=o(g(n))f(n) = o(g(n)) if for every positive constant cc, there exists n0n_0 such that for all nn0n \ge n_0:

0f(n)<cg(n)0 \le f(n) < c \cdot g(n)

Equivalently, the limit ratio is zero:

limnf(n)g(n)=0\lim_{n \to \infty} \frac{f(n)}{g(n)} = 0

In words: ff grows strictly slower than gg. No matter how small a constant factor you pick, ff eventually falls below cgc \cdot g.

Little-ω\omega: Strictly Faster Growth

f(n)=ω(g(n))f(n) = \omega(g(n)) if for every positive constant cc, there exists n0n_0 such that for all nn0n \ge n_0:

0cg(n)<f(n)0 \le c \cdot g(n) < f(n)

Equivalently:

limnf(n)g(n)=\lim_{n \to \infty} \frac{f(n)}{g(n)} = \infty

In words: ff grows strictly faster than gg.

Relationship to Big-O / Big-Ω\Omega

BigLittleMeaning
f=O(g)f = O(g)May be tight or loose; 3n2=O(n2)3n^2 = O(n^2) and 3n2=O(n3)3n^2 = O(n^3) are both true
f=o(g)f = o(g)Always non-tight; 3n2=o(n3)3n^2 = o(n^3) is true, but 3n2=o(n2)3n^2 = o(n^2) is false
f=Ω(g)f = \Omega(g)May be tight or loose; 3n2=Ω(n2)3n^2 = \Omega(n^2) and 3n2=Ω(n)3n^2 = \Omega(n) are both true
f=ω(g)f = \omega(g)Always non-tight; 3n2=ω(n)3n^2 = \omega(n) is true, but 3n2=ω(n2)3n^2 = \omega(n^2) is false

Concrete Examples

ExpressionOOΩ\OmegaΘ\Thetaooω\omega
3n23n^2 vs n2n^2
3n23n^2 vs n3n^3
3n23n^2 vs nn
nlognn \log n vs n2n^2
nn vs logn\log n

The Quantifier Difference

The distinction is in the quantifier for cc:

  • Big-O: c>0,n0:nn0,f(n)cg(n)\exists c > 0, \exists n_0: \forall n \ge n_0, f(n) \le c \cdot g(n) — some constant works.
  • Little-o: c>0,n0:nn0,f(n)<cg(n)\forall c > 0, \exists n_0: \forall n \ge n_0, f(n) < c \cdot g(n) — every constant works.

For 3n23n^2 and n2n^2: pick c=2c = 2. Then 3n22n23n^2 \le 2n^2 fails for all nn, so 3n2o(n2)3n^2 \neq o(n^2). But for 3n23n^2 and n3n^3: for any cc, pick n0=3/cn_0 = 3/c and the inequality 3n2<cn33n^2 < c n^3 holds beyond that, so 3n2=o(n3)3n^2 = o(n^3).

Common Pitfalls

  1. OO is not “grows exactly like”: n=O(n2)n = O(n^2) is true; OO means “at most.”
  2. Little-o requires strictness: Θ\Theta functions are not in oo of each other. 3n2=Θ(n2)3n^2 = \Theta(n^2) but 3n2o(n2)3n^2 \neq o(n^2).
  3. Lower bounds work symmetrically: Ω\Omega means “at least,” ω\omega means “strictly greater.”
  4. Constants are irrelevant for oo and ω\omega: f(n)=o(cg(n))f(n) = o(c \cdot g(n)) iff f(n)=o(g(n))f(n) = o(g(n)).
  5. The limit test: if limnf/g\lim_{n \to \infty} f/g is finite and non-zero, then f=Θ(g)f = \Theta(g) and neither f=o(g)f = o(g) nor f=ω(g)f = \omega(g) can hold.

Summary

NotationDefinitionLimit formMnemonic
f=o(g)f = o(g)c>0,n0:f(n)<cg(n)\forall c > 0, \exists n_0: f(n) < c \cdot g(n)limf/g=0\lim f/g = 0”strictly less"
f=ω(g)f = \omega(g)c>0,n0:f(n)>cg(n)\forall c > 0, \exists n_0: f(n) > c \cdot g(n)limf/g=\lim f/g = \infty"strictly greater"
f=Θ(g)f = \Theta(g)c1,c2>0:c1gfc2g\exists c_1, c_2 > 0: c_1 g \le f \le c_2 glimf/g(0,)\lim f/g \in (0, \infty)"exactly”
Key insightoo and ω\omega exclude asymptotic equality3n2o(n2)3n^2 \neq o(n^2)