T(n) = T(n/2) + T(n/4) + O(1),T(n) 是多少?

发布于 2024-10-27 01:08:15 字数 136 浏览 3 评论 0原文

如何解决这个递归问题:T(n) = T(n/2) + T(n/4) + O(1)

主方法似乎没有帮助,因为这是不是 T(n) = aT(n/b) + f(n) 的形式。我被困了很长一段时间。

How to solve this recurrence: T(n) = T(n/2) + T(n/4) + O(1)

It doesn't seem like Master Method will help, as this is not in the form of T(n) = aT(n/b) + f(n). And I got stuck for quite a while.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷情妓 2024-11-03 01:08:15

Akra Bazzi 是一种比 Master 方法更强大的方法。

由于“非递归”项是 O(1),因此它相当于求解方程

1/2^p + 1/4^p = 1

而你得到的答案将是 T(n) = Theta(n^p)

我相信解决上述问题(1/2^p 中的二次方程)可以得到 p = log_2 phi 其中phi 是黄金比例。

计算得出 T(n) = Theta(n^0.694...)

Akra Bazzi is a much more powerful method than Master method.

Since the 'non-recursive' term is O(1), it amounts to solving the equation

1/2^p + 1/4^p = 1

And the answer you get will be T(n) = Theta(n^p)

I believe solving the above (quadratic in 1/2^p) gives us p = log_2 phi where phi is the golden ratio.

Computing that gives us T(n) = Theta(n^0.694...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文