我正在閱讀Sedgewick和Wayne的書「算法 - 第四版」,我必須承認「算法分析」一章中的某些部分讓我感到困惑!這可能是由於我缺乏數學知識......反正!將數學模型嵌套到數學模型中以計算操作次數
書中的某個地方有一個程序的例子,其中內循環被認爲是正好執行N(N-1)(N-2)/ 6次。那就是:
public static int count(int[] a) {
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; i < a.length; j++) {
for (int k = j + 1; k < a.length; k++) {
if (a[i] + a[j] + a[k] == 0) {
count++;
}
}
}
}
return count;
}
我熟悉的大O符號,但是當涉及到循環計數opreations的確切數目,我迷路了。我瞭解N(N-1)(N-2)部分,但爲什麼我們必須除以6?它背後的邏輯是什麼?
任何幫助將不勝感激!
參見[*算法§1.4分析*](HTTP://algs4.cs .princeton.edu/14analysis /)和['ThreeSum'](http://algs4.cs.princeton.edu/14analysis/ThreeSum.java.html)。 – trashgod 2012-08-11 15:11:58