This document provides an overview of greedy algorithms, including examples and analysis. It discusses how greedy algorithms work by making locally optimal choices at each step in hopes of finding a global optimum. Examples covered include counting change using coins, scheduling jobs on processors, minimum spanning trees, and Dijkstra's shortest path algorithm. The document notes that greedy algorithms may not always find the optimal solution and provides examples where they fail. It also analyzes the time complexity of various greedy algorithms.