Czasy kodu zostały wykonane w zagnieżdżonej pętli for Java
Ostatnio czytam książkę zatytułowanąAlgorytmy Robert Sedgewick. Natknąłem się na jeden fragment kodu podczas czytania „Analizy algorytmów”. Kod jest następujący:
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
}
Chcę wiedzieć, ile razyif
-stopień w ramachfor
-loop został wykonany. Odpowiedź podana w książce brzmi:N(N-1)(N-2)/6
. Ale nie wiem dlaczego, ktoś mógłby to wyjaśnić.