递推关系

17 Mar 2025 | 阅读 2 分钟

递归是一种用较小输入的值来描述函数的方程或不等式。解决递归关系意味着获得一个在自然数上定义的函数,该函数满足递归关系。

例如,MERGE SORT 过程的最坏情况运行时间 T(n) 由递归关系描述。

T (n) = θ (1) if n=1
 2TDAA Recurrence Relation + θ (n) if n>1

有四种解决递归关系的方法

  1. 代入法
  2. 迭代法
  3. 递归树方法
  4. 主方法

1. 代入法

代入法包括两个主要步骤

  1. 猜测解决方案。
  2. 使用数学归纳法找到边界条件并证明猜测是正确的。

例如 1 用代入法解方程。

	T (n) = TDAA Recurrence Relation + n

我们必须证明它被渐进地限制在 O (log n) 内。

解决方案

For T (n) = O (log n)

我们必须证明对于某个常数 c

将其代入给定的递归方程。

	T (n) ≤c logDAA Recurrence Relation+ 1
			≤c logDAA Recurrence Relation+ 1 = c logn-clog2 2+1
			≤c logn for c≥1
Thus T (n) =O logn.

例 2 考虑递归

T (n) = 2TDAA Recurrence Relation+ n n>1

找到 T 的渐进界限。

解决方案

We guess the solution is O (n (logn)).Thus for constant 'c'.
 T (n) ≤c n logn
Put this in given Recurrence Equation.
Now,
  T (n) ≤2cDAA Recurrence Relationlog DAA Recurrence Relation+n
      ≤cnlogn-cnlog2+n
      =cn logn-n (clog2-1)
      ≤cn logn for (c≥1)
Thus T (n) = O (n logn).

2. 迭代法

这意味着展开递归并将其表示为 n 和初始条件项的总和。

例 1: 考虑递归

解决方案

  
T (n) = 2T (n-1)
      = 2[2T (n-2)] = 22T (n-2)
      = 4[2T (n-3)] = 23T (n-3)
      = 8[2T (n-4)] = 24T (n-4)   (Eq.1)

Repeat the procedure for i times

T (n) = 2i T (n-i)
Put n-i=1 or i= n-1 in    (Eq.1)
T (n) = 2n-1 T (1)
      = 2n-1 .1    {T (1) =1 .....given}
      = 2n-1 

例 2: 考虑递归

解决方案

 T (n) = T (n-1) +1
       = (T (n-2) +1) +1 = (T (n-3) +1) +1+1
       = T (n-4) +4 = T (n-5) +1+4
       = T (n-5) +5= T (n-k) + k
Where k = n-1
   T (n-k) = T (1) = θ (1)
   T (n) = θ (1) + (n-1) = 1+n-1=n= θ (n).

下一主题递归树方法