嵌套for循环的Big-O复杂性

标签 big-o nested-loops

我对以下内容的复杂性感到困惑(内部循环内部执行的操作是在恒定时间内进行的):

for(int i=0; i<n; i++)
  for(int j=i; j<n; j++)

这是O(n ^ 2)还是O(n)?我算出O(n ^ 2)。有任何想法吗?

还有以下使我感到好奇:
for(int i=0; i<n; i++)
   for(j=0; j<i; j++)

最佳答案

当然是O(n squared)。两种情况的摘要说明:1 + 2 + ... + n是n(n+1)/2,即(n squared plus n) / 2(在big-O中,我们删除了第二个小部分,因此我们剩下n平方/2,这当然是O(n squared))。

关于嵌套for循环的Big-O复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432865/

相关文章:

javascript - 动态嵌套for循环用递归解决

math - 逆 FFT 的计算复杂度

algorithm - 这个嵌套for循环算法的时间复杂度?

algorithm - 关于大O符号比例因子的问题

java - 比较嵌套 if 条件和单个 if 条件

python - 优化嵌套循环操作

java - 如何在迭代时向作为 HashMap 值的 ArrayList 添加内容?

loops - 奇怪的嵌套循环的时间复杂度

c++ - 在 C++ 中,如何使数据文件中的整数均匀分布在 5 列中?

计算嵌套循环的时间复杂度