给出等式T(n)=sqrt(2)T(n/2)+log(n)
。
解决方案指向M.T.的案例1。复杂度等级为O(sqrt(n))。但是在我理解之后log(n)是多项式大于sqrt(n)。我错过了什么吗?
我使用如下定义:n ^ e = log_b(a)其中a = sqrt(2)且b = 2.这将给出e = 1/2< 1. log n显然是多项式,然后是n ^ e。
答案 0 :(得分:1)
没有。 log x n 不大于√n。
考虑n=256
,
√n = 16
,
和
log 2 256 = 8 (让我们假设基数为x=2
,与许多计算问题一样)。
在你的复发中,
T(n)= √2 T(n/2) + log(n)
a = √2, b = 2 and f(n) = log(n)
log b a = log 2 √2= 1/2 。
由于 log n< n a ,对于a > 0
,我们有主定理的案例1。
T(n) = Θ(√n)
。
答案 1 :(得分:1)
使用主人定理得到:HorizontalScrollView
,a=sqrt(2)
,因此b = 2
。您的c = logb(a) = 1/2
因此属于第一种情况。
因此,您的复杂性为f(n) = log(n)