大O递归关系

时间:2019-03-20 20:56:25

标签: big-o recurrence

所以我的复发关系如下:

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)的原因,但是我的结果也不应该是正确的,因为它假设总和小于或等于相同的总和,但是无穷大?

0 个答案:

没有答案
相关问题