Recursion trees

Patterns

Most divide & conquer algorithms give us run time recurrences:

$$ T(n) = a T(n/b) + f(n) $$

Assumptions

a and b are integers.

Also assume:

$$ T(1) = \Theta(1), \ \textbf{and} \ f(1) = \Theta(1) $$

Unfolding the recursion tree

Recursion tree

$$\begin{split} T(n) &= a · T(n/b) + f(n) &= a · (a · T(n/b^2) + f(n/b)) + f(n) &= a^2 · T(n/b^2) + a · f(n/b) + f(n) \end{split}$$

Gives us:

$$\begin{split} T(n) &= a^{L+1}T(1) + \sum_{i=0}^{L} a^i f(n/b^i) \\ &= \Theta(\sum_{i = 0}^{L} a^i f(n/b^i)) \end{split}$$