Lesson 5 / 25
Big-Omega, Big-Theta and Little-o
Use Ω, Θ, o and ω to state lower bounds, tight bounds and strict bounds.
Bounds from below and both sides
Big-Omega gives an asymptotic lower bound: f(n) = Ω(g(n)) if there exist c > 0 and n₀ with f(n) ≥ c · g(n) for all n ≥ n₀. Big-Theta gives a tight bound: f(n) = Θ(g(n)) if f is both O(g(n)) and Ω(g(n)), meaning f grows at exactly the same rate as g, up to constant factors. So 3n² + 10n is Θ(n²), while it is O(n³) but not Θ(n³). Little-o is a strict upper bound: f(n) = o(g(n)) if f grows strictly slower than g (the ratio f/g tends to 0), for example n = o(n²) but n² is not o(n²). Little-omega is the strict lower bound. In everyday engineering, people say "Big-O" when they mean a tight bound, as in "merge sort is O(n log n)". In exams and theory, use Θ when you mean tight. Lower bounds also describe problems: any comparison-based sorting algorithm needs Ω(n log n) comparisons in the worst case, so merge sort is optimal among comparison sorts.
Bounds for the same function
f(n) = 4n log n + 3n.
f(n) = 4n log n + 3n
O(n log n) true (tight upper bound)
O(n^2) true (but loose)
Omega(n) true (but loose)
Omega(n log n) true
Theta(n log n) true (both O and Omega of n log n)
Theta(n^2) false (not Omega(n^2))
o(n^2) true (grows strictly slower than n^2)
o(n log n) false (grows at the same rate)Speed limits and minimums
Big-O is a speed limit ("never faster than"), Big-Omega is a minimum speed ("never slower than") and Big-Theta says the car always cruises within a band around one speed.
Quick check: What does f(n) = Θ(g(n)) mean?
- f grows strictly slower than g
- f is both O(g(n)) and Ω(g(n)), so it grows at the same rate as g
- f is always smaller than g
- f and g are equal for all n
Answer
f is both O(g(n)) and Ω(g(n)), so it grows at the same rate as g — Theta is a tight bound: f is bounded above and below by constant multiples of g.