algorithm - 这段代码的时间复杂度是多少?

标签 algorithm time-complexity

sum=0;
for(i=0;i<n;i++)
  for(j=0;j<i*i;j++)
    for(k=0;k<j;k++)
      sum++;

上述程序的时间复杂度是多少?我觉得应该是O(n^4)。有人可以推导出来吗?

最佳答案

假设输入n

for(i=0;i<n;i++) is O(n)

for(j=0;j<i*i;j++) is O(n^2 /2) since depends on i whose value goes from 1 to n (average of 1..2 is n/2).

for(k=0;k<j;k++) is O((n^2 /2) / 2) since depends j goes from 0 to i*i

然后因为它们是嵌套的,所以复杂度是循环复杂度 O(n * (n^2/2) * ((n^2/2)/2)) = O(n^5/8 )

n^5 或 O(n^5) 的顺序

关于algorithm - 这段代码的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40228196/

相关文章:

c++ - 排序时如何找出 "progress"?

javascript - 如何修改算法以减少延迟?

sorting - 时间复杂度: Insertion sort with unique key

algorithm - 这个 BFS 算法的时间复杂度是多少?

algorithm - 复杂性理论-排序算法

algorithm - 两个不等维矩阵相乘的时间复杂度是多少?

database - 快速数据/时间覆盖检查算法

algorithm - 计算 DFS 算法中特定字符的数量?

c++ - 使用最小生成树查找从 A 到 B 的路径 - C/C++

python - 找到最大 k 个整数的时间复杂度是多少?