![]() |
1
2
唯一有趣的是计算频率
因此,请注意
触发
然而,在您的示例中,您犯了一个错误,将外部循环的迭代次数乘以 总迭代次数 而不是迭代次数 每个外部循环迭代 .
在上面的例子中
让我们仔细看看您的具体示例中发生了什么。外部循环触发器
总的来说,您将收到
|
![]() |
2
2
为了简化这个问题,我们假设n在这里是5。 因此,第1行将执行5次,因为它将检查并增加i值5次。 第2行将执行(5-1)=4次,因为对于i=5,它将不执行,但对于i=5,第1行将执行。 第3行将执行1次、2次、3次,以此类推,每次i递增。 把第三行的复杂性放到上下文中,您会发现它正在执行1+2+3+4=10次。它只是从1到4的数字之和,或者你可以说,n(n+1)/2,其中n=4。 我们可以忽略第1行和第2行的复杂性,因为它们是常数,并且在渐近表示法中,复杂性将为O(n^2)。 |
![]() |
3
1
可以将这两个嵌套循环视为检查nx N矩阵上对角线上和对角线下的所有单元格。 所以你总是会做一些接近N^2的1/2的运算。因此,代码的操作总数将是N^2*常量。根据Big-O表示法的定义,这意味着您的代码运行时复杂性是O(n^2)。 下面是一个简单的代码,可以帮助您理解我的解释。
|
![]() |
Dazcii · 如何找到3个嵌套循环的复杂性 6 年前 |
![]() |
Kodean · Java:循环字符串长度时间复杂性 6 年前 |
![]() |
screeb · 依赖于收敛的算法的大O 7 年前 |
![]() |
f1sh3r0 · 从图中确定渐近增长率 7 年前 |
![]() |
user3487554 · 时间复杂性组合 7 年前 |
|
user6217340 · 大O复杂性 7 年前 |
![]() |
Jawwad Rafiq · 对两个相关循环的复杂性感到困惑? 7 年前 |