Big o O(n logn)是多项式时间吗?
O(n logn)是多项式时间吗?如果是,你能解释一下原因吗 我对数学证明感兴趣,但我也会感谢任何强烈的直觉Big o O(n logn)是多项式时间吗?,big-o,Big O,O(n logn)是多项式时间吗?如果是,你能解释一下原因吗 我对数学证明感兴趣,但我也会感谢任何强烈的直觉 谢谢 至少不比多项式时间差。但仍然不是更好:n>sqrt(n),但是n^1.5不会像n那样增长。这个答案完全错误!看,你能详细说明这里到底出了什么问题吗?(还要注意的是,在计算机科学中,Big-O通常用在大θ的意义上。)O(n^2)仍然是多项式时间。事实上,n
谢谢 至少不比多项式时间差。但仍然不是更好:n
编辑:从wikipedia页面,“如果一个算法的运行时间是由该算法输入大小的多项式表达式的上限,则称该算法为多项式时间。”是。当n趋于无穷大时,nlogn的极限是多少?直观地,对于大N,n> Logn,可以考虑由n和nLogn~n支配的乘积,这显然是多项式时间。更严格的证明是使用三明治定理,该定理启发了did: n^1
n_0*f(n)我没有说它是1,如果我们学究式的话,我们可以说当n趋于无穷大时,n支配着nlogn的极限。严格地说,趋向无穷大的序列是发散的。如果你有两个函数f(n)*g(n),那么乘积的极限是lim f(n)*lim g(n),在这种情况下是无穷大*无穷大,这是未定义的。你能再进一步解释一下那句话吗?我已经解释过了。重复:当n趋于无穷大时,n>>logn。因此,当n趋于无穷大时,基本上可以忽略logn对nlogn的贡献,只剩下n。这不是“严格的”,但这家伙要求直觉……但你本质上是说“
log(n)=o(n)
,所以log(n)=o(1)
”。我同意忽略对数是一个很好的方法,可以直观地看到nlog(n)是如何增长的,但我们不能完全忽略它。用另一种方式说明我的观点:如果我们将log
更改为sqrt
,您仍然有n>>sqrt(n)
,但是n^1.5
不会像n
那样增长。这个答案完全错误!看,你能详细说明这里到底出了什么问题吗?(还要注意的是,在计算机科学中,Big-O通常用在大θ的意义上。)O(n^2)仍然是多项式时间。事实上,nlogn1怎么样。那n_0
不应该在那里。2.为了证明logn<2n
,我将证明logn
。这将变成h(n)=log(n)/n<1
。这适用于n=n0=1
(0