给定的哪个选项提供函数f1,f2,f3和f4的渐近复杂度的递增顺序?
f1(n) = 2^n
f2(n) = n^(3/2)
f3(n) = nLogn
f4(n) = n^(Logn)
(A) f3,f2,f4,f1
(B) f3,f2,f1,f4
(C) f2,f3,f1,f4
(D) f2,f3,f4,f1答案: (A)
解释:
f1(n) = 2^n
f2(n) = n^(3/2)
f3(n) = nLogn
f4(n) = n^(Logn)
除f3外,其他所有都是指数函数。因此,f3绝对是第一输出。在其余之中,n ^(3/2)是下一个。
比较f1和f4的一种方法是取两个函数的Log。 Log(f1(n))的增长顺序为Θ(n),Log(f4(n))的增长顺序为Θ(Logn * Logn)。由于Θ(n)具有比Θ(Logn * Logn)高的增长,因此f1(n)的增长快于f4(n)。
以下是比较f1和f4的另一种方法。
让我们比较f4和f1。让我们拿几个值进行比较
n = 32, f1 = 2^32, f4 = 32^5 = 2^25
n = 64, f1 = 2^64, f4 = 64^6 = 2^36
...............
...............
另请参阅http://www.wolframalpha.com/input/?i=2^n+vs+n^%28log+n%29
感谢fella26提供了上述解释。
这个问题的测验