Big o 求解递推T(n)=T(n/2)和#x2B;T(n/2-1)和"x2B ;;n/2+;2.

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符

需要使用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符号用于描述函数的渐近行为和
(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))