在这个递归关系T(n)=T(n/4)+T(3n/4)+c
中,我只是混淆了这种递归关系与最佳和最坏情况分析的关系是什么,因为我们必须解决大小为n /的子问题4和3n / 4那么最坏情况或最佳案例分析的术语是什么?
此外我们应该在这里使用theta(log n)我们的O(log n),虽然看到下面的链接我发现O(log n)更适用但仍然无法理解为什么我们不使用theta(log n)在这里。
How to solve the recursive complexity T(n) = T(n/4)+T(3n/4)+cn
答案 0 :(得分:3)
T(n) = T(n/4) + T(3n/4) + CONST <= 2T(3n/4) + CONST
我们将case 1 of master theorem用于:
a = 2, b = 4/3.
c = log_{4/3}(2) ~= 0.4
CONST is in O(n^0.4)
因此,根据主定理,一个cad得出2T(3n/4) + CONST
在Theta(logn)
,而从T(n) <= 2T(3n/4) + CONST
,我们可以说T(n)
在O(logn)
遵循相同的想法,但有下限:
T(n) >= T(3n/4) + CONST ...
再次使用主定理,我们可以知道T(n)也在Omega(logn)
。
由于T(n)既是O(logn)又是Omega(logn),它也是Theta(logn)。
至于你的问题,你可以使用big-O或Theta表示法,无论你喜欢什么。正如你所看到的,证明Theta需要更多的工作,但它也提供了更多信息,因为它告诉你你发现的界限很紧。
答案 1 :(得分:1)