T(n)= T(n-1)+ O(n * n!)的渐近复杂度是多少?

时间:2013-09-16 17:34:36

标签: algorithm math big-o time-complexity factorial

T(n)= T(n-1)+ O(n * n!)的渐近复杂度是多少?紧上限就足够了。我试图计算一个非常复杂的递归算法的时间复杂度来找到字谜,最后我想出了这个公式(希望是正确的)。您可以假设算法在达到T(1)时停止。

编辑:T(n)= T(n-1)+ O(n * n!)当然等于O(n * n!)+ O((n-1)*(n-1)!) + ... + O(1)但我不知道该怎么做。

2 个答案:

答案 0 :(得分:4)

要严格了解正在发生的事情,请注意

n * n! = (n + 1) * n! - n! = (n + 1)! - n!

因此原始功能可以改写为:

T(n) = T(n-1) + c * ((n + 1)! - n!)  where c is a constant from the O(f(n)) notation

如果你扩展T(n-1)等,你会看到阶乘抵消了最终

T(n) = T(0) + c * ((n + 1)! - 0!)

因此,如果T(0)是常数且有限的,

T(n) = O((n + 1)!)

答案 1 :(得分:2)

是O(n * n!)。每个后续项是由前导项主导的低阶多项式。