big-o - 无法找到此循环的大 O 时间

标签 big-o

我正在尝试查找以下代码片段的 Big O 运行时间:

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

由于 n 的乘法,我不确定它是 O(n^3),还是 O(n^2)。一些帮助将不胜感激:)

最佳答案

内循环将执行 0 + 1 + ... + n^2 - 2 + n^2 - 1 = (n^2)(n^2 - 1)/2 次(见 Arithmetic Series ),所以它是实际上是 O(n^4)。

关于big-o - 无法找到此循环的大 O 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986608/

相关文章:

algorithm - 数字复杂度误解的 N 次方根

algorithm - 在常数时间内复制一个字符串?

java - 有人向我解释了这个 Java Big O 代码的几个步骤

c# - 您如何称呼此类算法的时间复杂度?

java - 用于多循环的大 O

algorithm - 在受限空间内的随机位置生成 100 个球(有半径且无重叠)

algorithm - 使用 HashSet 查找时间为 O(1) 的邻接表?

algorithm - 3 嵌套for循环的复杂性

javascript - 我的算法可以被认为是 O(n) 吗? "Finding the longest substring with unique characters"

algorithm - 在单峰数组中找到第 k 个元素