Little-o: Strictly Slower Growth
f(n)=o(g(n)) if for every positive constant c, there exists n0 such that for all n≥n0:
0≤f(n)<c⋅g(n)
Equivalently, the limit ratio is zero:
limn→∞g(n)f(n)=0
In words: f grows strictly slower than g. No matter how small a constant factor you pick, f eventually falls below c⋅g.
Little-ω: Strictly Faster Growth
f(n)=ω(g(n)) if for every positive constant c, there exists n0 such that for all n≥n0:
0≤c⋅g(n)<f(n)
Equivalently:
limn→∞g(n)f(n)=∞
In words: f grows strictly faster than g.
Relationship to Big-O / Big-Ω
| Big | Little | Meaning |
|---|
| f=O(g) | May be tight or loose; 3n2=O(n2) and 3n2=O(n3) are both true | |
| f=o(g) | Always non-tight; 3n2=o(n3) is true, but 3n2=o(n2) is false | |
| f=Ω(g) | May be tight or loose; 3n2=Ω(n2) and 3n2=Ω(n) are both true | |
| f=ω(g) | Always non-tight; 3n2=ω(n) is true, but 3n2=ω(n2) is false | |
Concrete Examples
| Expression | O | Ω | Θ | o | ω |
|---|
| 3n2 vs n2 | ✓ | ✓ | ✓ | ✗ | ✗ |
| 3n2 vs n3 | ✓ | ✗ | ✗ | ✓ | ✗ |
| 3n2 vs n | ✗ | ✓ | ✗ | ✗ | ✓ |
| nlogn vs n2 | ✓ | ✗ | ✗ | ✓ | ✗ |
| n vs logn | ✗ | ✓ | ✗ | ✗ | ✓ |
The Quantifier Difference
The distinction is in the quantifier for c:
- Big-O: ∃c>0,∃n0:∀n≥n0,f(n)≤c⋅g(n) — some constant works.
- Little-o: ∀c>0,∃n0:∀n≥n0,f(n)<c⋅g(n) — every constant works.
For 3n2 and n2: pick c=2. Then 3n2≤2n2 fails for all n, so 3n2=o(n2). But for 3n2 and n3: for any c, pick n0=3/c and the inequality 3n2<cn3 holds beyond that, so 3n2=o(n3).
Common Pitfalls
- O is not “grows exactly like”: n=O(n2) is true; O means “at most.”
- Little-o requires strictness: Θ functions are not in o of each other. 3n2=Θ(n2) but 3n2=o(n2).
- Lower bounds work symmetrically: Ω means “at least,” ω means “strictly greater.”
- Constants are irrelevant for o and ω: f(n)=o(c⋅g(n)) iff f(n)=o(g(n)).
- The limit test: if limn→∞f/g is finite and non-zero, then f=Θ(g) and neither f=o(g) nor f=ω(g) can hold.
Summary
| Notation | Definition | Limit form | Mnemonic |
|---|
| f=o(g) | ∀c>0,∃n0:f(n)<c⋅g(n) | limf/g=0 | ”strictly less" |
| f=ω(g) | ∀c>0,∃n0:f(n)>c⋅g(n) | limf/g=∞ | "strictly greater" |
| f=Θ(g) | ∃c1,c2>0:c1g≤f≤c2g | limf/g∈(0,∞) | "exactly” |
| Key insight | o and ω exclude asymptotic equality | 3n2=o(n2) | |