Greedy algorithms are algorithms that follow the idea that the best possible path/ answer at all intermediate steps eventually results in the answer of the overall problem. This idea does not work for all problems but when it is applicable, it improves the time complexity greatly.