具有n ^ 2 log(n)的大O复杂度

时间:2015-09-29 21:51:01

标签: big-o logarithm

两个问题:

首先,如果f(n)= n(3n + nlog(n))那么为什么f(n)Ω(n 2 )?

第二,为什么n 2 log(n)不是O(n 2 )?

2 个答案:

答案 0 :(得分:1)

这些都是log(n)倾向于无穷大的结果,因为n倾向于无穷大。

1)n(3n + nlog(n))是欧米茄(n ^ 2),因为对于大的n,3n可忽略不计,n ^ 2log(n)在n ^ 2以下界定

2)n ^ 2log(n) not O(n ^ 2),因为对于任何常数K> 1。 0,对于任何n> e ^ K你有n ^ 2log(n)> Kn ^ 2,因此没有K满足n ^ 2log(n)< Kn ^ 2适用于所有但有限多的n。

答案 1 :(得分:0)

Ω()用于将绑定置于函数下。这意味着该函数的运行时间复杂度至少要超过Ω()中括号之间的值。现在,对于函数f(n) = n(3n + nlog(n)),所涉及的两个函数中的主导函数( 3n 2 n 2 Log(n) n 2 Log(n)

因此,任何小于支配函数的函数都可以作为下界,即使它可能不是最可能的下界。所以, f(n)是Ω(n 2

接下来,n 2 Log(n)的生长速率高于n 2 (正如我上面已经提到的那样,其中一个是主导的)。因此,n 2 Log(n)是关于f(n)的Big-O的更严格的界限(因此是更好的决定因素)。因此, f(n)是O(n 2 Log(n))而不是O(n 2 )。