Define greedy algorithms
Greedy algorithms are a class of algorithms that make a series of choices by selecting the locally optimal option at each step, with the hope that these local optima will lead to a globally optimal solution. They are often used for optimization problems where the problem can be broken down into subproblems, and solving each subproblem optimally guarantees an optimal solution for the entire problem. Examples include algorithms for finding the minimum spanning tree, like Prim's and Kruskal's, and the Huffman coding algorithm for data compression.