该递归函数的深度是多少?

时间:2019-02-17 06:20:33

标签: recursion depth

以下递归函数的深度是多少?

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,此解决方案均不通用。

我正在寻找一个公式来查找此递归方程的深度。

0 个答案:

没有答案