复杂度的渐进表示
- T(n) = O(f(n)) 表示存在常数C >0, n0>0 使得当 n≥n0 时有T(n) ≤ C·f(n)
- T(n) = Ω(g(n)) 表示存在常数C >0, n0>0 使得当 n≥n0 时有T(n) ≥ C·g(n)
- T(n) = Θ(h(n))表示同时有T(n) = O(h(n)) 和 T(n) = Ω(h(n))
简单来说对于一个算法比如说f(n)=2n^2+3n+5,运行的时间计做T(n)。
T(n)有个范围:C·g(n) ≤T(n) ≤ C·f(n),那么f(n),g(n) 就是T(n)取值的上届和下届,取等的时候g(n) = f(n)就是h(n)。再穿一个高大上外套就是O(f(n)),Ω(g(n)),Θ(h(n))。
比如:
f(n)=2n^2+3n+5,
⇒ f(n) = O(n^ 2)、O(n^ 3)、O(n^ 4) …
⇒ f(n) = Ω(n^ 2)、Ω(n)、Ω(1) …
⇒ f(n) = Θ(n^2)