问题描述
所以我的递归方程是T(n) = 2T(n/2) + log n
我使用了主定理,发现a = 2,b = 2和d = 1。
是情况2。因此解决方案应该是O(n^1 log n)
,它是O(n log n)
我在网上看了看,有人发现它是O(n)。我很困惑
谁能告诉我它不是O(n log n)吗?
解决方法
这不应该是情况2,而是情况1。
有了T(n) = 2T(n/2) + log n
的{{1}}的关键指数,我认为是正确的。但是肯定c_crit = log_2(2) = 1
对{em> some log n
来说是O(n^c)
,即使对于所有c < 1
,所以情况1都适用,整个事情就是{{1} }。
我对主定理中的d
不熟悉。主定理上的wikipedia article指出您需要找到关键指数c = log_b a
。这里的c = 1
。情况2要求我们有f(n) = Theta(n log n)
,但实际上我们有f(n) = log n
。相反,此问题属于情况1(看看您是否能找出原因!),其含义为T(n) = Theta(n)
,就像您在其他地方发现的一样。