function fib(n) {
if (n <= 1) return n;
return fib(n-1) + fib(n-2);
}
function fibFast(n, memo = {}) {
if (n in memo) return memo[n];
if (n <= 1) return n;
memo[n] = fibFast(n-1, memo) +
fibFast(n-2, memo);
return memo[n];
}
| n | O(2ⁿ) - Số phép toán | O(n) - Số phép toán | Chênh lệch |
|---|---|---|---|
| 10 | 1,024 | 10 | 100x chậm hơn |
| 20 | 1,048,576 | 20 | 52,000x chậm hơn |
| 30 | 1,073,741,824 | 30 | 35 triệu lần chậm hơn! |
🎯 Kết luận: O(2ⁿ) tăng trưởng cực kỳ nhanh và trở nên không khả thi với n lớn!