computation-theory - 计算以下代码的代码复杂度
问题描述
我觉得在最坏的情况下,当 j=i 或 j=i^2 然后循环运行额外的 i + i^2 次时,条件只有两次为真。在最坏的情况下,如果我们取内部 2 个循环的总和,它将是 theta(i^2) + i + i^2 ,它等于 theta(i^2) 本身;外循环上 theta(i^2) 的总和给出 theta(n^3)。那么,答案是 theta(n^3) 吗?
解决方案
对于固定的i
,i
整数是。因此,内部循环使用参数执行次数为和守卫执行次数。因此,复杂度函数由下式给出:1 ≤ j ≤ i2
j % i = 0
{i,2i,...,i2}
i
i * m
1 ≤ m ≤ i
i2
T(n) ∈ Θ(n4)
T(n) = ∑[i=1,n] (∑[j=1,i2] 1 + ∑[m=1,i] ∑[k=1,i*m] 1)
= ∑[i=1,n] ∑[j=1,i2] 1 + ∑[i=1,n] ∑[m=1,i] ∑[k=1,i*m] 1
= n3/3 + n2/2 + n/6 + ∑[i=1,n] ∑[m=1,i] ∑[k=1,i*m] 1
= n3/3 + n2/2 + n/6 + n4/8 + 5n3/12 + 3n2/8 + n/12
= n4/8 + 3n3/4 + 7n2/8 + n/4
推荐阅读
- python - selenium.common.exceptions.WebDriverException:消息:通过 Python unittest 模块执行测试用例时没有这样的会话
- node.js - 通过nodejs express 4中的单个输入上传多个文件的最佳方法是什么?
- android - 如何获取与我的应用程序相关的所有重要信息(如崩溃和错误日志),这些信息存在于 Google Playstore 上
- ios - 在哪里编写强制 iPhone 用户在其 iPhone 中更新 iOS 应用程序的代码?
- python - 文森蒂距离系列
- javascript - javascript:恢复div的背景颜色
- c - 将文件映射到内存后读取文件
- odoo-10 - ODOO 中的验证错误
- iphone - 解锁 iPhone 设备以继续?
- javascript - 数据表第一页后无法在模式中设置值