algorithm - 如何解决这个任务 ()=4(/4)+√n?
问题描述
我是分而治之的新手。我想知道如何找出这个计算的运行时间?
我究竟需要注意什么以及如何进行?
n=1 运行时间 = O(1)
解决方案
所以让我们看看这个计算:
T(n) = 4T(n/4) + n * sqrt(n)
扩展为总和 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 < bd,
T(n) = Θ((n^d)log n) 如果 a = bd,
T(n) = Θ(n^(logba)) 如果a > bd
是的 ans 是 O(n^3/2)
{抱歉,由于声誉低,无法发表评论}
推荐阅读
- php - 如何在 WebTestCase 上进行 JSON 请求
- python - 我认为它不会花费太多时间(对于 - if 条件检查循环),有没有更好的方法?
- c# - 如何检查 OVRInputModule 上的 Oculus Go 控制器是否单击 GUI 对象
- c# - 如何在一行中传递元组结果
- selenium - 无法对几个组进行分组,通常用于 testng.xml 中的所有测试
- vuejs2 - VUEJS ROUTER 在调度操作中推送之前刷新页面
- powershell - 如何使用 azure-pipelines 将当前的 git 标签暴露给 windows 上的电子生成器?
- python - 如何在 django 模型表单中保存外键
- jsp - 如何在 liferay 7.2 中覆盖 elasticSearch 的配置
- java - 在 thymeleaf html 中使用变量