我只是想验证一些事情我是否执行了以下步骤?
T(n) = 3T(n/3) + n : Theta(nlogn)
O(nlogn)
T(k) = cklog(k) k<n
T(n/4) = c(n/3)log(n/3)
= c(n/3)[logn - log3]
= c(n/3)logn - c(n/3)log3
T(n) = cnlogn-cnlog3 + n
<= cnlogn -cn + n
<= cnlogn -dn **[STEP A]**
<= cnlogn if c >= d
Omega(nlogn)
>= cnlogn -cn + n
>= cnlogn -dn **[STEP A]**
>= cnlogn if 0 < c <= d
我在步骤 A 中遇到了问题,我最终的 c 范围是:
c >= 1 表示上限 0 < c <= 1 表示下限
将 cn + n 结合起来有什么特殊原因吗?我可以看到它背后的逻辑,但有必要做那一步吗?因为那样我可以在任何情况下都这样做......这有点奇怪......