如何解决如何解决这个任务?(?)=4?(?/4)+?√n?
我是《分而治之》的新手。我想知道如何找出这个计算的运行时间?
我到底需要注意什么以及如何进行?
n=1 运行时间 = O(1)
解决方法
让我们看看这个计算:
T(n) = 4T(n/4) + n * sqrt(n)
扩展 sum k 步,它会像
T(n) = 4^k[T(n/4^k)] + n * sqrt(n) * {sqrt(1/4)+sqrt(1/16)....}乙>
这里 {sqrt(1/4)+sqrt(1/16)....} 是几何级数
如果我们取 k=log4(n) //这里的基数是 4
T(n) = n * [T(1)] + n * sqrt(n)*{1-[2/sqrt(n)]}
T(n) = n * [T(1)] + n * sqrt(n) -2 * n
你仍然可以使用
掌握定理
T(n) = aT(n/b) + f(n)。如果 f(n) = Θ(n^d),其中 d ≥ 0,则
T(n) = Θ(n^d) 如果 a
T(n) = Θ((n^d)log n) 如果 a = bd,
T(n) = Θ(n^(logba)) 如果 a > bd
是的,答案是 O(n^3/2)
{抱歉,由于声誉低,无法发表评论}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。