Recursion
Recursive algorithms call themselves indefinite times until they finish.
- Each recursive call should be a smaller instance of the same problem.
- The recursive calls must eventually reach a base case, which is solved without further recursion.