Algorithm (初学者)关于大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(

我有一些关于大O符号的问题:


这是事实,因为:

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

-> Lim(n-> infinity) = n^3/n^2 >= c
然后我使用了L'Hospital,得到了
6n/2>=c
,如果我选择
c
as
1
n0
as
1


我的想法对吗

现在我有两对:

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))