我在网上搜索过这个,但我似乎只找到了类似等式的答案:
T(n) = T(n/3) + T(2n/3) + cn
但我想解决的问题是:
T(n) = T(n/3) + T(2n/3)
基本情况:对于任何常量T(a) = Theta(1)
,我们可以假设a
。
我成功地(通过归纳)证明T(n) = O(n*log(n))
。我认为答案应该是Theta(n*log(n))
,但我无法证明T(n) = Omega(n*log(n))
。
所以我的问题是 - 我是否正确答案是O(n*log(n))
,而不是Theta(n*log(n))
?如果这是真的那真的很棒......
如果我错了,我当然会解释我在诱导过程中遇到的问题......
谢谢!
P.S。如果您需要,请尝试使用归纳法进行解释,因为我还没有学会解决这些问题的所有方法。
答案 0 :(得分:1)
你不能证明它是Omega(n log n),因为T(n)= n满足基本情况和重复。