Divide and Conquer
- Divide up problem into several subproblems (of the same kind)
- Solve (conquer) each subproblem recursively
- Combine solutions to subproblems into overall solution
- Typically uses recursion
Examples
- Quick Sort
- Merge Sort
- Binary Search
- Peak Finding
- Shuffling a List
- Counting Inversions