public void computeDifference(){
int i=0,j=0;maximumDifference=0;
for (i=0;i < elements.length;i++){
for (j=i+1;j < elements.length;j++){
maximumDifference = (Math.abs(elements[j]-elements[i]) > maximumDifference)? Math.abs(elements[j]-elements[i]):maximumDifference;
此代码的时间复杂度是多少?
答案 0 :(得分:0)
这将是O(n^2)
。因为外循环(外循环运行n-1
次),内循环运行1
次到n
时间。因此,
(n-1) + (n-2) + (n-3) + .... + 1 = n*(n+1)/2
所以内部声明大约运行。 n^2/2 + n/2
次。所以上限是O(n^2)
。其中n
是元素的数量。