# Divide and Conquer
> [!summary] Definition
>
> - **Divide** the problem into one or more subproblems that are smaller
> instances of the same problem.
> - **Conquer** the subproblems by solving them recursively.
> - **Combine** the subproblem solutions to form a solution to the original
> problem.
- A good option for [[parallelism|parallel]] executions.
- The [[recursion]] _bottoms out_ when it reaches the base case.
- Use [[recurrence]] to characterize its running time.
- Examples
- [[binary-multiplication]]
- [[strassen|Strassen's algorithm for matrix multiplication]]
- [[merge-sort|Merge Sort]]