# 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]]