Overview

This chapter dives deep into the divide-and-conquer paradigm—splitting a problem into smaller subproblems, solving them recursively, and combining the results. It presents two major algorithmic applications (maximum subarray and matrix multiplication) and three methods for solving the recurrences that characterize divide-and-conquer running times: the substitution method, the recursion-tree method, and the master method.

Key Concepts

  1. Divide the problem into smaller subproblems.

  2. Conquer the subproblems by solving them recursively (or directly if small enough—the base case).

  3. Combine the subproblem solutions into the overall solution.

Algorithms and Techniques

Maximum-Subarray Problem (Section 4.1)