在分析我编写的一些代码时,我为它的运行时间提出了以下递归方程 -
T(n) = n*T(n-1) + n! + O(n^2)。
最初,我假设 O((n+1)!) = O(n!),因此我解决了这样的方程 -
T(n) = n! + O(n!) + O(n^3) = O(n!)
推理甚至每次递归都会产生另一个 n!(而不是 (n-1)!、(n-2)! 等),它仍然只能达到 n*n!= (n+1)!= O(n!)。最后一个参数是由于平方和。
但是,在考虑了更多之后,我不确定我的假设 O((n+1)!) = O(n!) 是否正确,事实上,我很确定它不是。
如果我认为我做了一个错误的假设是正确的,我真的不确定如何实际求解上述递归方程,因为没有阶乘总和的公式......
任何指导将不胜感激。
谢谢!!!