两个递归函数之和的复杂度?

问题描述

我需要计算以下递归函数的复杂度: T(n)= T(n / 4)+ 3M(n / 4)+ 11n-18,其中M(n)= 7M(n / 4)+ 36n-52,初始条件如下:T(1)= 1和M(1)= 6

如何计算T(n)的复杂度?我知道如何使用单个递归函数来执行此操作,但是这次在一个公式中包含两个递归函数,并且我不知道如何处理此问题?

一个基于主定理的通用公式: 令M(n)= aM(n / b)+ cn + d + fn ^ k且M(1)= e,则M(n)的复杂度计算如下:

-如果a不等于b并且f = 0,则M(n)的解为: M(n)=(e +(bc /(a-b))+ d / a-1)n ^ log_ba-(bc / a-b).n + d / a-1

我想使用这个通用公式来计算上述T(n)的复杂度。有人可以帮我解决这个问题吗?

解决方法

请注意,T引用M,但M仅引用自身。这意味着您可以在此处执行两步过程:

  1. 解决M(n)。
  2. 将解决方案插入T(n),就其本身而言,对T(n)进行递归,然后求解T(n)。

从您的问题来看,您似乎正在寻找一个精确的解决方案,但是,如果您只是渐近地关心,则可以使用主定理来获得以下解决方案:

  1. M(n)=Θ(n log 4 7
  2. T(n)= T(n / 4)+ 3M(n / 4)+ O(n)= T(n / 4)+Θ(n log 4 7 ),求解为Θ(n log 4 7 )。