Comparing Functions
Our asymptotic notations enjoy the following useful properties which we might use when analyzing algorithms:
- Transitivity
- Let `H(f(n))` represent one of the notations `Theta(f(n))`, `O(f(n))`, `o(f(n))`, `Omega(f(n))`,
`omega(f(n))`. Then:
`f(n) = H(g(n))` and `g(n) = H(h(n))` implies `f(n) = H(h(n))`.
- Reflexivity
- Let `H(f(n))` represent one of the notations `Theta(f(n))`, `O(f(n))`, `Omega(f(n))`. Then:
`f(n) = H(f(n))`
- Symmetry
- `f(n) = Theta(g(n))` if and only if `g(n) = Theta(f(n))`
- Transpose Symmetry
- `f(n) = O(g(n))` if and only if `g(n) = Omega(f(n))`
`f(n) = o(g(n))` if and only if `g(n) = omega(f(n))`