关系的时间复杂度 T(n) = T(n-1) + T(n/2) + n

time complexity of relation T(n) = T(n-1) + T(n/2) + n

关系

T(n) = T(n-1) + T(n/2) + n

我可以先求解给出 O(n^2) 的项 (T(n-1) + n),然后求解项 T(n/2) + O(n^2) 吗?

根据同样给出 O(n ^ 2) 的主定理还是错误的?

我不认为你的做法在一般情况下是正确的。当您丢弃 T(n/2) 项来计算 T(n-1) 项的复杂性时,您最终低估了 T(n-1) 项的大小。

具体反例:

 T(n) = T(n-1) + T(n-2) + 1

你的技术也将为此提出 T(n) = O(n^2),但真正的复杂性是指数级的。

不,你不能用母定理来解决它。

您需要使用 Akra–Bazzi method 来解决它,这是对著名主定理的更清晰的概括。

  1. 主定理假定子问题大小相等。

  2. 主定理涉及形式

  3. 的递归关系

T(n) = a T(n/b) + f(n) , where a>=1, b>1.


我不是在这里导出解决方案的步骤,以便您解决它。如果您在解决相同问题时还有其他问题,请在下面发表评论。祝你好运...