main page  —  CS 566 Efficient Algorithms

Unit 11: Greedy Algorithms

This is an archived version of this module from Winter 2024-25.

This unit covers the greedy paradigm and discusses examples of greedy algorithms for exemplary algorithmic problems:

  • Making-change problem
  • Huffman coding (recap)
  • Kruskal’s MST algorithm
  • Prim’s MST algorithm
  • Dijkstra’s shortest path algorithm
  • Activity selection

It also briefly covers the concept of matroids.

Learning outcomes

  1. Describe informally what greedy algorithms are.
  2. Know exemplary problems and their greedy solutions: Change-Making Problem, MSTs, SSSPP, Assignment Problem.
  3. Be able to design and proof correctness of greedy algorithms for (simple) algorithmic problems.
  4. Be able to explain the matroid properties and its relation to greedy algorithms.

Material


Further reading and sources

The presentation of the making-change problem is my own. Further reading on greedy coin denominations can be found in

The MST presentation follows

The state of the art MST algorithms are described in the following research papers:


Unit 10  ⋅  Syllabus  ⋅  Unit 12