algorithm - 复发的解决方法

标签 algorithm complexity-theory recurrence

我正在寻找这种复发的解决方案。基本上我想学习如何解决这种复发以及如何获得它的值(value)。

T(N) = 3T(N/3) + T(N/2) + N

最佳答案

使用 Akra-Bazzi 方法绝对是一个很好的解决方案。

下面关于递归树的解是错误的。在评论中找到原因。

只是想在这里留下错误的解决方案,以防有人好奇或犯同样的错误。

这是递归树的解决方案。

对于水平h,它看起来像

T(N) = 3^h*T(N/3^h) + T(N/2^h) +\sum\limits_{i=1}^{h-1} (3^{i -1} + 3^i)*T(N/(3^i 2^{h-i}))

这意味着水平 h 贡献

N < N + N/2^h + 4N/3 * (1-\frac{1}{2^{h-1}}) < 4N

注意,循环树的高度介于

(\log_2 N,\log_3 N)

因此,大 O 表示法是

O(N log N)

( 只是想说明递归树是一种可能的解决方案。

关于algorithm - 复发的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58351136/

相关文章:

python - Redis 在给定分数附近获取用户集

algorithm - 计算具有数字 S 的大 A 和 B 之间的整数

c# - 为什么这个函数的圈复杂度是12?

algorithm - 为什么中位数算法不能使用 block 大小 3?

algorithm - 比较价格的方法

mysql - 连接表 a 到表 b 在匹配子字符串上的效率低下......想法?

在集合中查找整数符号组合的算法,使得该集合的总和为 0

algorithm - 替换方法 : Why this recurrence changes inequality & equality sign And Why inductive step used smaller values as a next value

algorithm - 与以 n 表示的变量的递归关系

kendo-ui - 有没有办法从 KendoUI Recurrence Editor 获取重复字符串?