📜  主定理中的正则条件。

📅  最后修改于: 2021-05-04 08:10:02             🧑  作者: Mango

主定理是获得递归关系的解的直接方法,只要它是以下类型:

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

该定理由以下三种情况组成:
1如果f(n)= $\theta$ ( n^c )其中c < log_b a那么T(n)= $\theta$ (n log_b a )

2,如果f(n)= $\theta$ ( n^c )其中c = log_b a那么T(n)= $\theta$ ( n^c登录n)

3,如果f(n)= $\theta$ ( n^c )其中c> log_b a那么T(n)= $\theta$ (f(n))

想象以树的形式重复出现aT(n / b)+ f(n)。
情况1涵盖了子节点比父节点执行更多工作的情况。
例如,方程T(n)= 2T(n / 2)+1属于情况1的类别,从下面的树中我们可以清楚地看到,在每个级别上,子节点的工作量是父节点的两倍。

T(n)          ------(1)
                                    /    \
                                 T(n/2)  T(n/2)    ------(2)
                                  /   \   /   \    

情况2涵盖了子节点和父节点进行相同工作量的情况。

例如,等式T(n)= 2T(n / 2)+ n属于情况2的类别,从下面的树中我们可以清楚地看到,在每个级别上,子节点执行的工作量与父节点相同。

T(n)          ------(n)
                                    /    \
                                 T(n/2)  T(n/2)    ------(n)
                                  /   \   /   \    

情况3涵盖了父节点比子节点执行更多工作的情况。
T(n)= T(n / 2)+ n是情况3的示例,其中父母比孩子做更多的工作。

T(n)          ------(n)
                                       |
                                     T(n/2)        ------(n/2)
                                       |

在案例1和案例2中,案例条件本身确保孩子所做的工作等于或多于父母,而案例3则不是。
在第3种情况下,我们采用了监管条件,以确保父母的行为至少与子女的行为相同。

情况3的监管条件是

af(n/b)<=cf(n).

这表示f(n)(在根中完成的工作量)至少应与在较低级别中完成的工作之和一样大。

方程T(n)= T(n / 2)+ n(sin(n – \pi / 2)+ 2)是监管条件产生巨大差异的示例。该方程式不满足情况1和情况2。在情况3中,对于较大的n值,它永远无法满足调节条件。因此,该方程超出了主定理的范围。