递归的递归公式,需要2个参数

时间:2017-10-18 03:40:15

标签: recursion asymptotic-complexity

我可以从重复创建一个递归公式,它只传递一个参数(类似于$ T(n / 2)$)。但是,对于这样的情况,$ u $和$ v $的值不同,我该如何将它们组合在一起?这就是问题所在:

对某些n>的递归函数RecursiveFunction(n,n)的调用。 2

RecursiveFunction(a, b) 
if a >= 2 and b >= 2
   u=a/2
   v=b-1
   RecursiveFunction(u, v)

最终目标是找出最坏情况运行时间的紧密渐近界限,但我只需要一个公式首先开始。

1 个答案:

答案 0 :(得分:1)

实际上有两种不同的答案,具体取决于ab的相对大小。

该功能可以写成如下:

enter image description here

其中C是每次调用完成的一些常量工作(if语句,将u, v推送到调用堆栈等。由于这两个变量独立演变,我们可以分别分析它们的演化。

  1. a - 请考虑以下功能:

    enter image description here

    将迭代案例扩展m次:

    enter image description here

    停止条件a < 2是这样的:

    enter image description here

  2. b - 和以前一样:

    enter image description here

  3. T(a, b)的复杂性因此取决于哪个变量首先达到其停止条件,即mn之间的最小变量:

    enter image description here