我最近正在阅读Robert Sedgewick的《算法》一书。我在阅读“算法分析”时遇到了一段代码。代码如下:
public static int count(int a[]) {
int N = a.length;
int cnt = 0;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
for (int k = j + 1; k < N; k++) {
if (a[i] + a[j] + a[k] == 0) { //here
cnt++;
}
}
}
}
return cnt
}
我想知道的是-loop中的if
-statement执行了多少次。for
本书提供的答案是N(N-1)(N-2)/6
。但是我不知道为什么,谁能解释一下。