algorithm - 重复:T(n) = (2+1/log n)T(n/2)

标签 algorithm big-o recurrence

我必须用树的方法来解决这个递归关系,因为主定理不适用。

T(n) = (2+1/log n) T(n/2)

最佳答案

经过一番思考,我想不出一个确切的解决方案。大师的定理在这里不起作用,伸展树(Splay Tree)没有给我任何合理的东西。所以我将按以下方式估算复杂性。

对于任何相当大的 n你可以估价0 < 1/log n < 1 .所以你可以得到:

T1(n) = 2 * T1(n/2)
T2(n) = 3 * T2(n/2)

O(T1) < O(T) < O(T2) .您可以使用 master theorem 找到两次重复的复杂性. T1的复杂性是O(n)T2O(n^log2(3)) .

所以你可以确定你的递归复杂度大于O(n)小于O(n^1.58) , 所以小于二次。

关于algorithm - 重复:T(n) = (2+1/log n)T(n/2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33585859/

相关文章:

algorithm - 我可以在一致的启发式/统一成本/Dijkstra 搜索下修改标准 A*(A 星),以便它不必更新边界吗?

c# - 有什么办法可以使它成为更快的算法吗?

python - 在计算行值时按日期对列表进行分组

algorithm - 在不损失精度的情况下有效地逼近第 n 项

algorithm - 开发算法的递归关系

algorithm - 给定算法的递归关系?

java - 我在 Java 中的快速排序算法出现问题

algorithm - 每种排序算法什么时候使用?

algorithm - 两个非嵌套循环的大 O 表示法

java - 在 O(log n) 时间内计算排序的 int 数组中具有相同数字的数字