Unit content
Divide-and-conquer algorithms
Divide and conquer solves a problem by splitting it into smaller subproblems of the same kind, solving those subproblems, and combining their results.
The pattern is
divide → solve subproblems → combine
Recursive implementations are common because each subproblem has the same structure as the original problem.
The strategy is useful when the subproblems are substantially smaller and can be combined efficiently. Binary search, merge sort and many geometric algorithms follow this pattern.
Its running time is often described by a recurrence such as
$$T(n)=aT(n/b)+f(n),$$
where $a$ subproblems of size roughly $n/b$ are created and $f(n)$ represents the work outside the recursive calls.
Divide and conquer is an algorithm-design strategy, not a claim that recursion is always faster: the split, overlap and combination cost determine whether the decomposition is useful.