我正在尝试解决这种复发情况

T(n)= 3 T(n / 2)+ n lg n ..

由于n lg n为O(n ^ 2),所以我得出了属于主定理情况2的解决方案

但是在参考解决方案手册后,我注意到他们已经有了这个解决方案

“在此处输入图片描述”

解决方案说,对于0到0.58之间的e,n lg n= O(n ^(lg 3-e))

所以这意味着n lg n是O(n)..对吗?我在这里想念东西吗?

不是nlgn O(n ^ 2)吗?

有帮助吗?

解决方案

这将更好地解释事情 “在此处输入图片描述”

其他提示

n*log(n)不是O(n^2)。它被称为准线性,并且比O(n^2)的增长速度慢得多。实际上,n*log(n)小于多项式。

换句话说: 通用标签

其中k > 1

在您的示例中: 通用标签

由于O(n^1.585)是多项式并且在O(n*log(n))中占主导地位,因此后一项下降了,因此最终复杂度仅为O(n^1.585)

n lg3 不是O(n)。它的增长超过O(n)...实际上,n上的任何指数大于1都会导致渐近地比O(n)更长的时间。由于lg(3)约为1.58,因此只要从指数中减去小于.58,它就渐近大于O(n)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top