我试了很多个小时并且我一直到达log(logn)(其中log是base 2)但是这与Masters定理不一致,它维持它只是log(n)。
答案 0 :(得分:2)
Master's定理在这里不适用,因为我们没有在每一步将输入除以常数。你的答案是对的。
答案 1 :(得分:1)
为了应用主定理,我们必须在每一步除以常数。在这种情况下我们仍然可以使用它,但我们必须改变这个问题。
设k=log n
,其中对数为基数b
,并定义S(k)=T(b^k)
。然后是S(k)=T(b^k)=T(n)=T(n^{1/2})+1=T((b^k)^{1/2})+1=T(b^{k/2})+1=S(k/2)+1
,我们可以将主定理应用于S
,它告诉我们S(k)=Theta(log k)
。因此,T(n)=T(b^{log n})=S(log n)=Theta(log(log n))
正如您所发现的那样。
答案 2 :(得分:0)
人们正确地告诉你,主人定理在这里不起作用。 要解决您的问题,您必须开始展开递归:。
递归会在某个时刻停止,所以我们必须找到一个合理的停止点。尝试0,1,2,你可以看到2看起来不错,因为你可以很容易地解决方程:。
因此,递归将持续log(log(n))
次,这是您的时间复杂度。
P.S。有点难以复发here。