Greedy algorithms make locally optimal choices at each step, hoping to find a global optimum. The approach: (1) select the best immediate option without reconsidering previous choices; (2) never backtrack; (3) build solution incrementally. Greedy algorithms are optimal for problems with greedy choice property and optimal substructure (e.g., minimum spanning tree with Kruskal's or Prim's algorithm, Huffman coding, fractional knapsack). However, for many problems (0/1 knapsack, traveling salesman), greedy approaches yield only approximate solutions. Advantages include: simplicity, efficiency (often polynomial time), and effectiveness as constructive heuristics for complex problems.