使用包含n阶乘

时间:2016-02-26 00:08:45

标签: asymptotic-complexity

如果我有一个在log(n ^(5/4)!)时间运行的算法,我怎么能把它表示为log(n)?是否只是我知道log(n!)将渐近等于nlog(n),但是(5/4)是否会改变任何东西,如果它确实如此?

1 个答案:

答案 0 :(得分:0)

好问题!正如您所说log(n!) = O(n log n)。由此得出结论

log(n^{5/4}!) = O(n^{5/4} log n^{5/4}) = O(n^{5/4} log n)

最后一个等式是因为log n^{5/4} = (5/4)*log n

因此,您可以将表达式简化为O(n^{5/4} log n)

答案是肯定的,指数中的因子5/4很重要:函数n^{5/4}渐渐快于n,因此您无法忽略它。 (这是因为n^{5/4}/n = n^{1/4},例如。)