Java 这个循环的时间复杂度应该是多少

Java 这个循环的时间复杂度应该是多少,java,time-complexity,Java,Time Complexity,这段代码的时间复杂度应该是多少 我在想(n^2-n),因为循环将运行n(n-1)/2次 for(int i=0;i

这段代码的时间复杂度应该是多少

我在想(n^2-n),因为循环将运行n(n-1)/2次

for(int i=0;i
  • i:外循环运行n-1次
  • j:内循环运行n-(i+1)次
用一个小数字进行分析,比如n=10

外部循环将运行9次

内部循环将按如下方式运行

i = 0: 9 times
i = 1: 8 times
i = 2: 7 times
...
i = 8: 1 time
所以

n * ( n - 1) = n ^ 2 - n
对于非常大的
n
n
n
平方相比是微不足道的

另请参见。

O(n^2-n)与O(n^2)渐近相同
n * ( n - 1) = n ^ 2 - n