Tn= 2Tn / 2+ log n的解

问题描述

所以我的递归方程是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),就像您在其他地方发现的一样。