📜  算法|算法分析|问题19

📅  最后修改于: 2021-06-28 22:26:58             🧑  作者: Mango

给定的哪个选项提供函数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提供了上述解释。

这个问题的测验