主方法 - 与两个Ts的递归关系

时间:2018-03-22 06:10:00

标签: algorithm master-theorem

我正在学习数据结构和算法课程(这很难)。我们了解了当aT(n / b)+ f(n)形式时解决基本递归关系的主方法。现在我们已经了解了线性时间选择算法,它具有不是这种形式的关系,我被要求发现它更糟糕的情况下运行时间是渐近符号。

我发现复发关系为:

formula1

在我看来,Master Method并没有考虑到这一点 - 我可能错了。如果它没有,那么你如何找到更糟糕的运行时间?

1 个答案:

答案 0 :(得分:0)

主定理并不适用,但直接证明这种复发的严格限制并不太难。

你知道你不能比 O(n)做得更好,因为这个词已经复发了。你被告知它是一个线性时间算法,并且有一些经验你可以猜测,因为子问题的总大小比某个因子小n,所以你可以做到这一点很好强> O(n)的

剩下的就是证明它。

你可以通过归纳很容易地证明这一点。设C为(大)常数,使得:

对于所有 n,

T(n)< = T(n / 101 + 1)+ T(151n / 202 + 101)+ C(n + 1)/ 202 ,(eq 1)和

T(n)< = C(n + 1),对于所有 n< 1000 (eq 2)

对于任何 n> = 1000 ,如果(eq 2)适用于所有较小的 n ,那么我们有

T(n)< = T(n / 101 + 1)+ T(151n / 202 + 101)+ C(n + 1)/ 202 (eq 1)

T(n)< = C(n + 202)/ 101 + C(151n + 20604)/ 202 + C(n + 1)/ 202 (subst eq 2)

T(n)< = C(2n + 404)/ 202 + C(151n + 20604)/ 202 + C(n + 1)/ 202

T(n)< = C(156n + 20604)/ 202

T(n)< = C(0.78n + 102)< = C(n = 0.22n + 102)< = C(n = 220 + 102)(因为n> ; = 1000)

T(n)< = C(n + 1)

因此,如果我们如上所述选择 C ,那么(eq 2)适用于 n< 1000 表示它适用于所有 n T(n)表示O(n)

相关问题