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

时间:2015-05-22 17:08:40

标签: algorithm time-complexity complexity-theory recurrence master-theorem

表示关系

  

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)或者它是错误的?

2 个答案:

答案 0 :(得分:2)

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

对于一个具体的反例:

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

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

答案 1 :(得分:1)

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

你需要使用Akra–Bazzi method来解决它,这是一个众所周知的主定理的更清晰的概括。

  1. 主定理假设子问题具有相同的大小。

  2. 主定理涉及形式

  3. 的递归关系
      

    T(n)= a T(n / b)+ f(n),其中a> = 1,b> 1。

    我不是在这里推导出解决方案的步骤,以便您可以解决它。如果您在解决问题时遇到进一步的问题,请在下面评论。祝你好运......

相关问题