n阶乘的时间复杂度

时间:2015-03-13 23:44:34

标签: time time-complexity

我有以下问题,但我不知道如何证明

n! is
    Select one or more:
 a. O(n^{3}) 
 b. O((n/2)^{n}) 
 c. O((n/3)^{n}) 
 d. O((n+1)!) 
 e. O(n^{n})
 f. O(2^{n})

我正在考虑使用f(x)∈O(g(x))的属性,当且仅当存在值x0且常数c> 0时,对于所有x> = x0 f(x) )< = C * G(x)的

这意味着最后一个:

n! <= c*2^{n}, for all n>=n0
n!/2^n <=c, for all n>=n0

如果我在这里说不等式是假的,那么它是正确的吗?因为n!/ 2 ^ n倾向于无穷大而c只是一个常数?

应用这个逻辑我得到了那个!是b。,c。,d。,e。但我不确定这是否正确。

1 个答案:

答案 0 :(得分:1)

你是对的n! ≠O(2 n )正是因为你提到的原因。

对于(b)和(c),您需要一种更细微的方法。斯特林的近似说明了

  

N! =Θ(√n(n / e) n

这可能有助于评估n的限制!超过数量(b)和(c)。如果你这样做,你会看到两个边界中只有一个成立,而不是两个。

是的,(d)和(e)是正确的。

希望这有帮助!