以下递归函数的深度是多少?
T(n) = r + T(n-r)
其中r < n
,如果2r > n
,则r = n-r
,
和停止条件,如果n = r
示例:
n = 24, r = 9
2r < n, 2*9 < 24, r is fixed (r=9)
T(24) = 9 + T(24-9)= 9 + T(15)
----------
2r > n, 2*9 >15, then r = 15 - 9 = 6
T(15) = 6 + T(15-6)= 6 + T(9)
------------
2r > n, 2*6 > 9, r = 9- 6 = 3
T(9) = 3 + T(9-3) = 3 + T(6)
-----------
2r = n, 2*3 = 6, r is fixed (r=3)
T(6) = 3 + T(6- 3) = 3 + T(3)
------------
Stop condition, r equals n
时间复杂度为O(n)。
可以通过递归树解决此问题,但是对于所有值n和r,此解决方案均不通用。
我正在寻找一个公式来查找此递归方程的深度。