Big o 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

O(n logn)是多项式时间吗?如果是,你能解释一下原因吗

我对数学证明感兴趣,但我也会感谢任何强烈的直觉


谢谢

至少不比多项式时间差。但仍然不是更好:n是这样的,因为它的上界是多项式(n)。 你可以看一看这些图表,然后从那里开始,但我不能给出一个数学证明,除此之外:P


编辑:从wikipedia页面,“如果一个算法的运行时间是由该算法输入大小的多项式表达式的上限,则称该算法为多项式时间。”

是。当n趋于无穷大时,nlogn的极限是多少?直观地,对于大N,n> Logn,可以考虑由n和nLogn~n支配的乘积,这显然是多项式时间。更严格的证明是使用三明治定理,该定理启发了did:

n^1 因此,nlogn由多项式时间序列上(下)界

是的,O(nlogn)是多项式时间

发件人:

如果一个数 对于给定的输入,完成算法所需的步骤是 O(n^m)对于一些非负整数m,其中n是 输入

发件人:

f是O(g)iff

现在我将证明,对于某些m,n logn是O(n^m),这意味着n logn是多项式时间

事实上,以m=2为例。(这意味着我将证明n log n是O(n^2))

作为证明,取k=2。(这个可以小一些,但不一定要小。) 存在一个n_0,因此对于所有较大的n,以下各项均成立


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