O(2^n) — Exponential Time
DSA · Big-O Notationsyntax
Each element doubles the work. Common in recursive solutions without memoization.example
// JavaScript
function fibNaive(n) {
if (n <= 1) return n;
return fibNaive(n - 1) + fibNaive(n - 2);
}
// Each call branches into 2 → O(2^n)
# Python
def fib_naive(n):
if n <= 1:
return n
return fib_naive(n - 1) + fib_naive(n - 2)
# Fix with memoization → O(n)output
Time: O(2^n) without memo | O(n) with memo | Space: O(n)Note Generating all subsets of a set is O(2^n). This is a red flag in interviews — if your solution is exponential, look for overlapping subproblems (DP) or pruning (backtracking). Always mention that memoization brings it down.