请问有人能帮我解决这个问题吗?
T(n)=T(n^(1/2)) + theta (lg lg n)
这是我目前所做的。
设定:
m = lg n
s(m)=s(m/2) + theta (lg m)
在这里应用主定理
a=1 b=2
m^log 2 (1) = m^0 =1
现在我卡住了。
你有:
a = 1, b = 2
f(m) = Ө(lg(m))
f(m) = Ө(m^c * lg^k(m))
where:
c = log_b(a)
Testing this out, we have:
f(m) = Ө(lg(m)) = Ө(m^0 * lg(m))
-> c = 0
-> c = log_b(a) = log_2(1) = 0
T(m) = Ө(m^c * lg²(m)) = Ө(lg²(m))
m
后,我们回到T(n) = Ө(lg²(lg(n)))
T(m)=Ө(m^c * lg²(m)) = Ө(lg²(m))
,因此 T(n)=Ө(lg²(lg(n)))
。 - Teepeemmf(n) = O(n^c)
,其中 c < log_b(a)
。第二种情况适用于 f(n) = Ө(n^c * (lg(n))^k)
,其中 c = log_b(a)
(k 很重要,因为它出现在递归的解决方案中)。第三种情况适用于 n^c = O(f(n))
或等价地说,f(n) = Ω(n^c)
,其中 c > log_b(a)
。这可能与您在主方法中看到的情况略有不同,因为我们在这里定义了严格的边界,而不是使用 O
来表示一切。 - Asad SaeeduddinT(n) = T(n/2) + Ө(n^2*(lg(n))^3)
,那么 c 就是 2,k 就是 3。 - Asad Saeeduddin
lg(sqrt(n)) == lg(n)/2 == m / 2
(根据定义)。这难道不正确吗? - Asad SaeeduddinT(sqrt(n))
,我不明白他是怎么从那里得出T(lg(sqrt(n)) = T(m / 2)
的。如果他写成了T(lg sqrt(n))
就没问题了。 - IVladT(√n)=s(lg√n)=s(m/2)
. 我认为你忽略了使用s(m)=T(n)
。 - Teepeemm