Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Recursion 采用2个参数的递归公式_Recursion_Asymptotic Complexity - Fatal编程技术网

Recursion 采用2个参数的递归公式

Recursion 采用2个参数的递归公式,recursion,asymptotic-complexity,Recursion,Asymptotic Complexity,我可以从递归中创建一个递归公式,其中它只传递一个参数(类似于$T(n/2)$)。但是,对于这样的情况,$u$和$v$的值不同,我如何将它们组合在一起?这就是问题所在: 对递归函数RecursiveFunction(n,n)的调用,对于某些n>2 RecursiveFunction(a, b) if a >= 2 and b >= 2 u=a/2 v=b-1 RecursiveFunction(u, v) 最终目标是找到最坏情况下运行时间的严格渐近界限,但我首先需

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

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

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

最终目标是找到最坏情况下运行时间的严格渐近界限,但我首先需要一个公式。

事实上,这有两个不同的答案,取决于
a
b
的相对大小

该函数可以编写如下:

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

<> >代码> A<代码> -考虑以下函数:

将迭代案例扩展
m
次:

停止条件
a<2
如下:

  • b
    -如前所述:

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


    实际上,a和b的大小是相同的,因为一般设置是递归函数(n,n),对于某些n>2,它会对结果进行任何更改吗?在这种情况下,它是
    O(logn)
    ,因为在渐近情况下
    logn
    总是小于
    n