Comprehensive Note: Algorithm Complexity
Analysis, Growth Rate, Asymptotic Analysis, and
Big-O Notation
1. Types of Algorithm Complexity Analysis
Algorithms behave differently depending on input. We analyze their performance in three ways:
Case Definition Example Notation
Best Case Minimum work, easiestSequential
input Ω(f(n))
search finds item at first position (1 comparison)
Worst Case Maximum work, Sequential
hardest input
search finds item at last position or not at all (n comparisons)
O(f(n))
Average Case Expected cost for Sequential
random input Θ(f(n))
search: (n+1)/2 comparisons assuming uniform distribution
2. Growth Rate
Growth rate measures how fast an algorithm’s cost increases as input size grows. Example: T(n) =
10,000 + 10n. For small n, constant dominates; for large n, linear term dominates. We ignore constants
and lower-order terms for large n.
3. Asymptotic Analysis
Study of algorithm behavior as n → ∞. Focus on growth rate, ignore constants. Common notations:
Big-O (upper bound), Big-Ω (lower bound), Θ (tight bound).
4. Big-O Notation
Definition: For f(n) ≥ 0, f(n) ∈ O(g(n)) if ∃ constants c > 0 and n■ > 0 such that f(n) ≤ c·g(n) for all n ≥
n■. Meaning: For large n, f(n) grows no faster than g(n) up to a constant factor.
Function Big-O
10n + 5 O(n)
n² + 100n O(n²)
n■ + 100n² + 10n + 50 O(n■)
Common Complexity Classes
Notation Name Example
O(1) Constant Add two numbers
O(log n) Logarithmic Binary search
O(n) Linear Sequential search
O(n log n) Linearithmic Merge sort
O(n²) Quadratic Bubble sort