具有2个参数的主定理,既不是n

时间:2017-02-04 22:24:47

标签: algorithm time master theorem

我正在做一个算法设计课程,我有一个功课来计算一个函数的成本,我做了一些研究并发现了关于主定理,但我看到的所有例子都是关于 n 在这个函数中我有2个参数,但都不是n。

function estudia(i,j){
    if i = j then resulta(i,j);
    M = (i+j)/2;
    C = (j-i)/4;
    estudia(i,M);
    estudia(i+C,M+C);
    combina(i,j);
}

function combina(i,j){
    ancho = j-i-1;
    p = 1;
    while p * p < ancho loop
        p = p+1;
        resulta(p,j);
}

我们知道结果(x,y)是O(1),但是如何计算递归函数的代价,主定理有2个参数i和j而不是n?是不可能的,我必须使用替换方法?

1 个答案:

答案 0 :(得分:0)

根据您的设置,我们假设i和j是固定参数。让n = j - i,距离。

对于estudia(i,M)M-i=n/2的距离为estudia(i+C,M+C),距离仍为n/2combina(i,j)=combina(n)

T(n) = estudia的费用。您可以将estudia的递归公式构造为:

T(n) = 2 * T(n/2) + combina(n)

正如你所说,你可以解决combina(n)(我不会解决它,因为它仍然是你的任务)。插入combina(n)的结果,你得到主定理。