嵌套的for循环的运行时复杂度,但内部循环仅取决于外部循环的当前索引

时间:2019-04-04 02:31:28

标签: loops time-complexity

for i in range(n):
   for j in range(i):
      print j

尽管内部循环仅达到外部循环的当前索引的长度,我仍然可以说这是O(n ^ 2)吗?

1 个答案:

答案 0 :(得分:0)

一个计数到n的循环描述了一条直线,两个计数到n的嵌套循环描述了一个正方形。

当内循环上升到外循环的索引时,您将三角形覆盖正方形的一半:

+----+
|.   |
|..  |
|... |
|....|
+----+

因此您可以通过计算三角形的面积来更准确地预测运行时间。但是Big-O表示法不是要获得准确的运行时,而是要在添加更多数据时比较运行时的扩展方式。您想知道您的程序最接近哪个of these lines。三角形的大小仍与n*n成正比。覆盖一半的平方并不足以使程序更接近其他复杂性类别。