math - 当有三个项时应用主定理?

标签 math big-o recurrence master-theorem

我将如何使用主定理解决这种递归问题?

T(n) = 4T(n/2) + n2 + logn

我不知道该怎么做,但我很确定可以使用 Master Theorem 来解决它。我必须忽略其中一个条款吗?感谢任何帮助,谢谢。

最佳答案

主定理适用于可以写成的函数

T(n) = aT(n / b) + f(n)

在这里,您有 a = 4、b = 2 和 f(n) = n2 + log n。请注意,我们将“n2 + log n”组合在一起作为 f(n) 项,而不是将其视为两个单独的项。

现在我们已经完成了,我们可以直接应用主定理。注意 logb a = log2 4 = 2 并且 f(n) = Θ(n2),所以根据主定理这解决了 Θ(n2 log n)。这样做的原因是 n2 + log n = Θ(n2),而主定理只关心 f(n) 的渐近复杂性。事实上,任何这些重复都可以用同样的方式解决:

T(n) = 4T(n / 2) + n2 + 137n + 42

T(n) = 4T(n / 2) + 5n2 + 42n log n + 42n + 5 log n + 106

T(n) = 4T(n / 2) + 0.5n2 + n log137 n + n log n + n2 / log n + 5

希望这对您有所帮助!

关于math - 当有三个项时应用主定理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409801/

相关文章:

algorithm - 如何有效地将 XOR 应用于两个整数数组?

arrays - 在二维数组中查找所有可能的行式总和

algorithm - 算法中的递归是否需要编写递归关系?

java - 为方法编写递归关系

algorithm - 确定程序 : if a separate function is called, 的大 O 运行时间我是否也包括其中的操作?

c++ - 用于处理重复事件的开源库

python - 分解函数

php - 正则表达式匹配至少一个符号和至少2个数字

algorithm - 这个算法的Big O分析是什么?

algorithm - 比较函数的边界