(初学者)关于Big O符号的问题

时间:2015-05-03 23:04:15

标签: algorithm big-o

我有一些与Big O符号相关的问题:

n^3 =  Big Omega(n^2)

这是因为:

n^3 >= c * n^2 for all n >= n0

-> Lim(n-> infinity) = n^3/n^2 >= c

然后我使用L&#39;医院获得了6n/2 >= c,如果我选择c作为1n0作为1 < / p>

我的想法是否正确?

现在我有两双:

log nn/log n,它们是否位于Theta, O或其他地方?告诉我他们撒谎的地方,然后我可以自己做证明。

n^(log n)2^n反之亦然

最后:

f(n) = O(n) -> f(n)^2 = O(n^2)

f(n)g(n) = O(f(n)g(n))

问题是:这些陈述是否正确

我会对第一个说“是”,我不知道为什么,这似乎有一个隐藏的伎俩,但我真的不知道,有人可以帮助我吗?

如果g(n)位于O(n),第二个应该是真的,但我也不知道。

1 个答案:

答案 0 :(得分:0)

好像你就在这里。

对于log(n)n/log(n),您可以通过查找lim log(n)/(n/log(n))进行检查,反之亦然。
使用a^b = e^(b*ln(a))
的事实 n^log(n) = e^(log(n) * log(n)) < e^(n^2) = e^e^(2*log(n)) < (e^e)^(2*n) = O(C^n)2^n也是Big O(C^n)

让我们使用Big O(f)的定义和一些属性:

  • O(f) = f * O(1)
  • O(1) * O(1) = O(1)

现在我们有:
f(n)^2 = f(n) * f(n) = O(n) * O(n) = n * O(1) * n * O(1) = n^2 * O(1) = O(n^2)
f(n)g(n) = f(n)g(n) * O(1) = O(f(n)g(n))
所以,是的,这是正确的。

相关问题