下面给出了我的算法,我知道这个算法有一个指数运行时间,但我不知道如何用数学来表示。有人知道吗?
如果(n=1或n=2),则返回n
其他的
返回2*RecursiveMNum(n-1)*RecursiveMNum(n-2)
最佳答案
正如你所看到的,复杂性取决于调用2 * RecursiveMNum(n - 1) * RecursiveMNum(n - 2)
,因为另一个将在O(1)上进行计算。
所以你可以用Substitution来解决这个问题。
t(n)=t(n-1)+t(n-2)现在
2t(n-1)=2(2t(n-2))=2(2(2t(n-3))=…=2^kt(n-k)=…=2^nt(0)=o(2^n)
t(0)=_(1)(基本情况)
所以你可以说它一般有一个复杂度。