我不这么认为,因为sin(n(似乎是一个反例(它是$\Theta(1($,但不是常数(。是否存在不平凡的反例(从某种意义上说,它们与某些已知算法有关(?
你是对的,sin(n(就是一个很好的反例。
一个更简单的反例是f(n(=n+1和g(n(=n。
f(n(显然是ϴ(g(n((使得
对于所有n,n+1=c n。
由于您想要一个与实际算法的运行时间相关的反例,所以这个应该做得很好(例如,从1到n的循环与从1循环到n+1(。
总之,ϴ并不像你的陈述那样强烈,但它是类似的,这可能会引起你的困惑。这意味着f(n(=O(g(n((和f(n(=Ω(g(n((
上面的答案是正确的,但我想提供进入"为什么";从不同的角度来看。
首先,f(n(=ϴ(g(n((当且仅当f(n。
你可能还知道,对于所有n≥n0和一些c>0。在通俗英语中,这大致意味着">最终,f(n(总是小于或等于g(n(乘以某个常数";。
类似地,我们还知道f(n(=Ω(g(n((当且仅当对于所有n≥n0和一些d>0。这句话的通俗英文翻译是,我们知道";最终,f(n(总是小于或等于g(n(乘以某个常数";。
由于f(n(=ϴ(g(n。