所以我的复发关系如下:
T(n) = O(1) if n < 100
T(n) = 2T(n/3) + n otherwise
我使用了迭代方法,结果我知道big-O是:
O(n^(log in base 3 of n))
对我来说似乎有点奇怪(特别是对于我习惯的练习),但这是正确的吗?
如果您需要我的步骤,我会添加它们(不知道如何设置文本格式以求和或填充内容,但是如果需要,我会尝试)
编辑:
通过应用迭代方法,我发现步骤“ i”处的T(n)等于
T(n) = (2^i)T(n/(3^i)) + n * (sum from k = 0 to i of (2/3)^k)
因为我= n的对数以3为底
T(n) = 2^(log base 3 of n) + n * (sum from k = 0 to log base 3 of n of(2/3)^k)
总和为O((2/3)^ n的对数底数3)。如果我乘以n我得到
O(n^(log base 3 of n))
那是我的旧结果。感谢'yuvgin',我注意到我可以先更改基数:
(2/3)^log base 3 of n = n ^ log base 3 of (2/3)
然后我可以简化(2/3)的对数基数3
n ^ log base 3 of (2/3) = n ^ ((log base 3 of 2) - (log base 3 of 3))
x的对数基数x等于1,所以:
O(n^log base 3 of 2)
Edit2:
所以我找到了此链接:https://math.stackexchange.com/questions/1742712/how-to-solve-the-recurrence-tn-2tn-3n
那解释了我的总和是O(n)的原因,但是我的结果也不应该是正确的,因为它假设总和小于或等于相同的总和,但是无穷大?