这里只在正数范围讨论:
theta
f(n)=Θ(g(n))
表示:
存在常数c1,c2,和n0
当n>n0时有
c1*g(n)<f(n)<c2*g(n)
大O
f(n)=O(g(n))
表示:
g(n)是f(n)的渐进上限
比如fn = n^2, gn = n^3
n^2 = O(n^3) 或 2n = O(4n);
大O与Θ的比较:
Θ要比大O条件严格。集合上来说Θ < O
比如有3n^2 + 2n + 1 = Θ(n^2);
而3n^2 + 2n + 1 = O(n^3) 也可以有3n^2 + 2n + 1 = O(n^4)
我是这样理解的,Θ是一个“严格”上限既最小上限。而大O一般则用来表示是最坏运算时间。