Learning path

Full curriculum

Full curriculum

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.