Algorithm (初学者)关于大O符号的问题
我有一些关于大O符号的问题:Algorithm (初学者)关于大O符号的问题,algorithm,big-o,Algorithm,Big O,我有一些关于大O符号的问题: 这是事实,因为: n^3 >= c * n^2 for all n >= n0 -> Lim(n-> infinity) = n^3/n^2 >= c 然后我使用了L'Hospital,得到了6n/2>=c,如果我选择cas1和n0as1 我的想法对吗 现在我有两对: logn和n/logn,它们位于Theta,O还是其他地方?只要告诉我他们在哪里,我就能自己证明了 n^(logn)和2^n依次类推 最后: f(n) = O(
这是事实,因为:
n^3 >= c * n^2 for all n >= n0
-> Lim(n-> infinity) = n^3/n^2 >= c
然后我使用了L'Hospital,得到了6n/2>=c
,如果我选择c
as1
和n0
as1
我的想法对吗 现在我有两对:
logn
和n/logn
,它们位于Theta,O
还是其他地方?只要告诉我他们在哪里,我就能自己证明了
n^(logn)
和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)
,那么第二个应该是真的,但是我也不知道这里。看起来你就在这里
对于
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))
,2^n
也是大O(C^n)
让我们使用大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))
所以,是的,这是正确的 大欧米茄和大O不同。事实上,它有点相反。运算没有错。用L'Hospital来计算Lim(n->infinity)n^3/n^2有点过分了。
f(n) = O(n) -> f(n)^2 = O(n^2)
f(n)g(n) = O(f(n)g(n))