使用Master方法求解递归关系->当n为偶数时,T(n)= 2T(n / 2)+ n ^ 2;当n为奇数时,T(n)= 2T(n / 2)+ n ^ 3

时间:2018-10-01 20:40:54

标签: algorithm time-complexity recurrence master-theorem

T(n) ={ 2T(n/2) + n^2 when n is even and T(n) = 2T(n/2) + n^3 when n is odd

我分别解决了这个问题,根据大师定理的情况3,如果n为偶数,则得到的解为theta(n^2),如果n为奇数,则得到的是theta(n^3)。但是我不应该单独解决这个问题。

如何一起解决这样的递归关系?

T(n) ={ 2T(n/2) + n^2 when n is even and T(n) = 2T(n/2) + n^3 when n is odd

是可以用硕士定理解决的还是硕士定理不适用的?

请帮助我。

1 个答案:

答案 0 :(得分:1)

假设n = 2^k为某个整数k,因此n等于100...00。然后,您可以将主方法应用于重复的偶数部分。并获得theta(n^2)

现在假设最高有效位中还没有1,例如100100..00。因此,您的递归树中将至少有一个级别,其所有节点的总和为n^3 * constant,因此您将获得theta(n^3)

因此,如果theta(n^2)为2的幂,则答案为n,否则为theta(n^3)。但是,如果我们首先遇到奇数n并且它等于基本情况,那么它可能不是三次。


与kelalaka聊天之后,我发现如果第一个1k中第n个,则如果k > (2/3)(1/lg 2)lg n在右边,那么我们不在乎关于(n/2^k)^3的更多信息。仍然是O(n^2)