为何无法应用Master定理

时间:2017-09-14 01:34:34

标签: algorithm big-o analysis

完成任务并坚持几个问题。

  1. T(n)= T(2n / 5)+ n
  2. T(n)= T(2n / 3)+ T(n / 3)+ n
  3. T(n)= T(n-2)+ n
  4. 某事告诉我,在他们所有人身上都无法应用主定理。但为什么?他们的上限是什么(大哦)?

2 个答案:

答案 0 :(得分:1)

主方法仅适用于以下类型的重复。

T(n) = aT(n/b) + f(n) where a >= 1 and b > 1

关于问题,

<强> 1。 T(n)= T(2n / 5)+ n

@templatetypedef已修改此递推方程以适合主定理

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

我想你可以从这里解决它。

<强> 2。 T(n)= T(2n / 3)+ T(n / 3)+ n

显然,这不能通过主定理直接解决。我们应该尝试构造递归树并查看。递归树图表递归调用树和每次调用完成的工作量。 以下是从here

拍摄的图像

enter image description here

因此,这会减少到O(n * log n)

第3。 T(n)= T(n-2)+ n

显然,这不能通过主定理直接解决。 有一个为Subtract-and-Conquer类型派生的修改公式。

link可能有用。

对于表格的重复,

T(n) = aT(n-b) + f(n)

where n > 1, a>0, b>0

如果f(n)为O(n k )且k> = 0,那么

  1. 如果a <1则T(n)= O(n k
  2. 如果a = 1则T(n)= O(n k + 1
  3. 如果a> 1,那么T(n)= O(n k * a n / b
  4. 我想你可以从这里解决它。

    希望它有所帮助!

答案 1 :(得分:0)

主定理可以应用于表格的任何重现

  

T(n)= aT(n / b)+ O(n d

其中a,b和d是常数。 (还有一些其他的配方,但上面的一个处理更常见的情况)。具体来说,这意味着

  • 问题规模必须按常数因子收缩,
  • 子问题必须都具有相同的大小,
  • 必须有一定数量的子问题,
  • 附加项必须是多项式。

这些标准排除了第二次重复(子问题不具有相同的大小)和第三次(问题大小必须按常数因子缩小)。但是,第一次复发满足所有这四个标准。将重复重写为

可能会有所帮助
  

T(n)= T(n /(5/2))+ n。

基于此,您掌握了大师定理的案例,以及重现的解决方案是什么?