明智的功能复杂度更高:n^(-1/3)
vs (n!) ^ 2
vs 2 ^ (n^2)
?
英镑的近似值会给n! -> nlogn
,因此会转换为n^2 (log n)^2
。
答案 0 :(得分:4)
首先,您对Sterling近似的解释是不正确的。 ln(n!) -> O(n log n)
。 n!
本身更接近于指数时间复杂度。
其次,这里的答案应该是相当明显的。但是,如果您不确定,只需开始为n
插入一些数字:
10^(-1/3) = 0.464, (10!)^2 = 13168189440000, 2^(10^2) = 2^100
从上面应该很容易看出。
答案 1 :(得分:2)
我将假设n^(-1/3)
是一个拼写错误并忽略它。
为了比较其他两个,我们可以采用它们的对数:
log( (n!)^2 ) = 2 log(n!) = Theta(n log n)
log( 2^(n^2) ) = n^2 log 2 = Theta(n^2)
所以(n!)^2 << 2^(n^2)
。