微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决两个递归函数之和的复杂度?

我需要计算以下递归函数的复杂度: 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 )。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。