Big o 求解递推T(n)=T(n/2)和#x2B;T(n/2-1)和"x2B ;;n/2+;2.
需要使用Big Oh解决此运行时重复问题的帮助:Big o 求解递推T(n)=T(n/2)和#x2B;T(n/2-1)和"x2B ;;n/2+;2.,big-o,recurrence,Big O,Recurrence,需要使用Big Oh解决此运行时重复问题的帮助: T(n) = T(n/2) + T(n/2 - 1) + n/2 + 2 我不太明白如何在这里使用主定理,因为n足够大,你可以假设t(n/2-1)=t(n/2),所以你可以改变 T(n) = T(n/2) + T(n/2 - 1) + n/2 + 2 进入 并使用主定理()来 所以你有(案例2,因为log(a,b)=c) 你仔细看过网站右侧列出的所有问题了吗?相反,我发现根本不清楚为什么“你可以假设……”@hivert:因为landau符
T(n) = T(n/2) + T(n/2 - 1) + n/2 + 2
我不太明白如何在这里使用主定理,因为n足够大,你可以假设t(n/2-1)=t(n/2),所以你可以改变
T(n) = T(n/2) + T(n/2 - 1) + n/2 + 2
进入
并使用主定理()来
所以你有(案例2,因为log(a,b)=c
)
你仔细看过网站右侧列出的所有问题了吗?相反,我发现根本不清楚为什么“你可以假设……”@hivert:因为landau符号用于描述函数的渐近行为和
(n/2-1)
和(n/2)
是渐近等价的:limn->inf(n/2-1)/(n/2)=1
@CliffordVienna:假设不是Theta(n/2-1)==Theta(n/2)
而是Theta(T(n/2-1))==Theta(T(n/2))
这显然是错误的,例如,如果T=exp
@hivert:你当然是对的,但在这种情况下T()显然必须有一个多项式上界,因为对于稍大的T(n)=2*T(n/2)+n/2+2
,我们得到了一个多项式上界的解,因此limn->inf T(n/2-1)/T(n/2)=1
。(显然T()是正单调的,在其他方面也是合理的)
T(n) = 2*T(n/2) + n/2 + 2
T(n) = a*T(n/b) + f(n)
a = 2
b = 2
f(n) = n/2 + 2
c = 1
k = 0
log(a, b) = 1 = c
T(n) = O(n**c * log(n)**(k + 1))
T(n) = O(n * log(n))