【发布时间】:2023-06-18 00:43:02
【问题描述】:
我需要一些帮助来解决这个问题。我自己试了一下,我得到了 teta((n^3)logn) 但 Wolfram Alpha 说:
我想这就像一个 O((n^3)log^2(n))。我不能使用主定理,所以我通过递归解决了它。这是我的解决方案,但我不知道它有什么问题
【问题讨论】:
标签: algorithm recurrence master-theorem
我需要一些帮助来解决这个问题。我自己试了一下,我得到了 teta((n^3)logn) 但 Wolfram Alpha 说:
我想这就像一个 O((n^3)log^2(n))。我不能使用主定理,所以我通过递归解决了它。这是我的解决方案,但我不知道它有什么问题
【问题讨论】:
标签: algorithm recurrence master-theorem
你在最后阶段犯了一个错误。使用这些属性:log(x) + log(y) = log(xy) 和 log(x/y) = log(x) - log(y) 和 log(x^y) = y log(x)`,我们有以下内容:
sum_{i=0}{k-1} log(m/3^i) = log(m^k / (1 * 3 * 3^2 * ... * 3^(k-1)))
= log(m^k) - log(3^((k-1)k/2) - 1)
= k log(m) - (k-1)k/2 log(3) = c * k * (k-1) = Theta(log(m) * log(m))
因此,时间复杂度为m^3 log^2(m)。
【讨论】:
- 1是从哪里来的?顺便说一句,我认为如果每个= 都引起一个新行,它会更具可读性。