任何人都可以建议以下代码的时间复杂性

时间:2017-06-11 10:53:03

标签: java

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;

此代码的时间复杂度是多少?

1 个答案:

答案 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是元素的数量。