本帖最後由 rabbit82047 於 2013-10-17 19:53 編輯
回復 12# 刀仔刀刀神
Time complexity 你 google 可能好d, 做野之後都唔會去計, 佢話係 O(n) 就 O(n), O(log n) 就 O(log n) 
以 expand 黎講- for (int i = n; i >= 0; i--) {
- element[4 * i + 3] = a; // run n times
- element[4 * i + 2] = a; // run n times
- element[4 * i + 1] = a; // run n times
- element[4 * i] = element[i]; // run n times
- }
- size = 4 * size; // run once
複製代碼 結果 total 有 4n+1 個 operation, time complexity 就係 O(n) linear time
O(n^2) example - (n^2 - n) / 2- for (int i = 0; i < N; i++) {
- for (int j = 0; j < i; j++) {
- statements
- }
- }
複製代碼 O(log n) example - 2^x = n = log2(2^x) = log2(n)- for (int i = 1; i < N; i *= 2) {
- statements
- }
複製代碼 如果有 if else 仲要計 worst/best case, 係咁多, 其他要重新學返 |