我是Java的新手,我的问题是关于大O的复杂性.
对于a),它显然O(n^2)是一个嵌套循环.
for ( int i = 0; i < n; i++)
for ( int j=0; j < n; j++ )
Run Code Online (Sandbox Code Playgroud)
但是,对于b),最后使用sum ++操作,以及嵌套循环中的复杂性,是否会改变其Big-O复杂性?
int sum = 0;
for ( int i = 1; i <= n; i++)
for ( int j = n; j > 0; j /= 2)
sum++;
Run Code Online (Sandbox Code Playgroud) 我正在编写一种方法来查找数组是否有重复项。我在 equals 方法中遇到了一些问题,粗体行出错。我可以做出任何调整吗?
这是我的一些部分代码:
public boolean duplicate(){
for (int i=0; i<data.length; i++){
for (int j=i+1; j<data.length; j++){
**if (data.get(i).equals(data.get(j)){**
return true;
}
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找列表中2个双打之间最大的区别,我在NlogN时间这样做了,有没有办法在线性时间内完成它?谢谢!
public static double NlogN(double[] ar){
Arrays.sort(ar);
double max=ar[ar.length-1];
double min=ar[0];
double difference=max-min;
return difference;
}
Run Code Online (Sandbox Code Playgroud)