Recursive algorithms have time complexity described by recurrence relations. For example, merge sort has .
This says: divide the problem into two halves (each taking time) and spend time merging. Solving this recurrence gives .
Solving recurrences requires algebraic manipulation: expanding terms, factoring, finding patterns, and applying formulas like the Master Theorem.