A greedy algorithm takes the next best option at each step to solve optimization problems. These are approximate solutions, but can be computationally more efficient relative to true optimal approaches like [[dynamic programming]].