从函数形成递归方程

时间:2019-07-11 03:30:29

标签: algorithm recursion big-o

我被要求从一个递归函数中形成一个递归方程,并将其求解为T(n)。此函数将?个元素的数组分为两半;找到每个一半的最大值,然后返回两个中的最大值。但是,在理解如何从此函数形成递归方程时遇到了一些麻烦。

我在互联网上以及其他地方都看过类似的问题,据我所知,此函数执行两次递归调用,每次将数据分成2个,大小应为= n,但是我不确定函数中的其他元素以及如何正确编写它们。

?????ℎ???(?[], ????????, ????)
{  
 ?? (???? == 1)  
 ?????? A[????????];  

  ???1 = ?????ℎMax(?[], ????????, ⌊????/2⌋); 
  ???2 = ?????ℎMax(?[], ???????? + ⌊????/2⌋, ???? − ⌊????/2⌋); 

  if (???1 ≥ ???2)  
  ?????? ???1;  
  ????  
  ?????? ???2;  
}

1 个答案:

答案 0 :(得分:1)

T(n)= 2T(n / 2)+ c

时间复杂度-O(n)

该函数对大小为n / 2的子数组进行2次递归调用,并不断进行工作