任何人都可以帮助解释为什么这个函数
F(n(=F(n/3(+1,其中F(0(=0
可以具有O(Logn(的时间复杂度,对数基数为3。
有没有数学符号或任何东西可以帮助我解释如何得到结果。感谢
通过替换,可以简单地完成:
F(n) = F(n/3) + 1 = F(n/3^2) + 1 + 1 = 1 + 1 + ... + 1 (log_3(n) times)
由于每次n
除以3
,并且1
被添加到结果中,如果我们假设n = 3^k
,F(n) = k
。因此,F(n) = O(log(n))
。对数底的常数(>1(对复杂度的顺序没有任何影响,即log_a(n) = Theta(log_b(n))
(a,b > 1
(。