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)但我不知道该怎么做。
答案 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!)。每个后续项是由前导项主导的低阶多项式。