像下面这样的for循环嵌套,时间复杂度无疑是O(n^2)这个没有疑问。
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
}
}
但是,如果j=i+1呢?
for (int i = 0; i < nums.length; i++) {
for (int j = i+1; j < nums.length; j++) {
}
}
像上面这个代码这样的时间复杂度会是怎样的呢?
欢迎大佬给萌新解惑~
感谢
打印一下不就知道了
public static void main(String[] args) {
int count = 0;
int length = 40;
for (int i = 0; i < length; i++) {
for (int j = i + 1; j < length; j++) {
count++;
}
}
System.out.println("result=" + count);
}
result=780
规律是n*(n-1)/2
时间复杂度同样是O(n^2)。