Chapter 5 - Divide-and-Conquer Algorithms