Java 算术练习

Java 算术练习,java,algorithm,time-complexity,big-o,Java,Algorithm,Time Complexity,Big O,我想知道这个算法的复杂性,我对符号有点困惑 for(int i=0;i=i;--j) ++x 答案是: O(最小(N,M)) O(N*M) O(N+M) O(最大(N,M)) 简短回答:O(N*M) 说明: 首先,不管发生什么,外部循环都会执行N次。 内部循环将在第一次迭代中执行M次,在第二次迭代中执行M-1次,依此类推。这是一个算术级数,其和为d*(a1+an)/2 也就是1(M+1)/2,也就是O(M)。 乘以O(N)和O(M)将得到O(N*M)。时间复杂度是:O(N)*O(M)。换句话

我想知道这个算法的复杂性,我对符号有点困惑

for(int i=0;i=i;--j)
++x
答案是:

  • O(最小(N,M))
  • O(N*M)
  • O(N+M)
  • O(最大(N,M))
简短回答:O(N*M)

说明: 首先,不管发生什么,外部循环都会执行N次。 内部循环将在第一次迭代中执行M次,在第二次迭代中执行M-1次,依此类推。这是一个算术级数,其和为d*(a1+an)/2 也就是1(M+1)/2,也就是O(M)。
乘以O(N)和O(M)将得到O(N*M)。

时间复杂度是:
O(N)*O(M)
。换句话说:
~O(n^2)
你认为它是什么,你为什么这么认为?告诉我们你的想法,并表明你至少试过了。