案例1
for (i = 1; i < n; i++)
for (j = i; j < n; j++)
案例2
for (i = 1; i < n; i++)
for (j = 1; j < i; j++)
这两种情况之间的大O符号的时间复杂度是否存在差异?
答案 0 :(得分:1)
对于第一种情况,您将进行(n-1)+(n-2)+(n-3)+...+1
次迭代。此总和等于
(n-1)*n/2 = O(n^2).
对于第二种情况,您将进行n*n
次迭代。所以在第二种情况下我们有O(n^2)
。
所以他们都是O(n^2)
。
答案 1 :(得分:0)
我认为案例1和案例2的运行时间完全相同。
案例1:
案例2: