你被问到f(n)是否是O(g(n))Ω(g(n))或Θ(g(n)),你会怎么做?当你比较两个指数方程时,我发现像这样的问题更容易,因为例如x(n)= n ^ 2和p(n)= n ^ 2你可以找到一个c> 0(ex 3)其中x(n)< = cp(n)对于所有n大于某些n> 0并且将证明x(n)= O(p(n))。但是,由于某些原因,比较两个对数函数似乎要困难得多。感谢任何帮助,谢谢!
答案 0 :(得分:0)
f(n)
O(g(n))
a
c
常数n_0
和f(n) <= c * g(n)
,n >= n_0
Ω(g(n))
。
f(n)为c
iff常量n_0
和f(n) >= c * g(n)
,n >= n_0
为f(n)
。
现在,Θ(g(n))
为f(n)
iff O(g(n))
为f(n)
且Ω(g(n))
为f(n) = log (n^2) = 2logn
。
所以,在你的情况下,我们有:
g(n)
这意味着logn
是c = 2
和f(n) <= 2 * logn
,这意味着f(n) >= 2 * logn
和Ω(logn)
,这使得它成为f(n) <= n
。
顺便说一下。它也是f(n) >= 1
和f(n)
,因此O(n)
可以是O(g(n))
,但我们不会使用它,因为我们可以找到更好的Ω
。在这种情况下,我们在两种符号中都没有相同的功能,对于那些我们没有g(n)
的值。但是,Ω
只需要一个选项来声明Ω
。如果我们无法找到它,我们会说它不是logn
。注意单词&#34;我们说&#34;。
在第二种情况下,我们只关注最高增长值&#34;,c = 1
部分。现在,g = log(n)
和Ω(logn)
,所以在这种情况下,它也是calc
。