递归函数的执行次数
Number execution of recursive function
我有这个递归算法,T(n) 是 P(a, b) 执行的次数,n := b - a
int foo[] = ... // array of big enough size
function P(int a, int b)
if (a+1 < b) {
int h = floor((a+b)/2)
if foo[h] >= 0 then P(a, h)
if foo[h] <= 0 then P(h, b)
}
end function
我如何计算 T(1)、T(2)、T(3) 和 T(4)
由于每次a
和b
之间的距离(作为函数的输入)减半,时间复杂度为Theta(log(b-a))
。
我有这个递归算法,T(n) 是 P(a, b) 执行的次数,n := b - a
int foo[] = ... // array of big enough size
function P(int a, int b)
if (a+1 < b) {
int h = floor((a+b)/2)
if foo[h] >= 0 then P(a, h)
if foo[h] <= 0 then P(h, b)
}
end function
我如何计算 T(1)、T(2)、T(3) 和 T(4)
由于每次a
和b
之间的距离(作为函数的输入)减半,时间复杂度为Theta(log(b-a))
。