Lecture 20

Learning objectives

After this class, you should be able to:

  1. Given a DAG, topologically sort it.
  2. Prove the correctness of the algorithm we discussed for topological sorting and give its time complexity.
  3. Given a directed graph, find its strongly connected components.
  4. Prove the correctness of the algorithm we discussed for finding strongly connected components and give its time complexity.
  5. Given related graph problems, give algorithms to solve them, prove their correctness, and derive their time complexities.
  6. Given incorrect algorithms for similar problems, give counterexamples to disprove them.

Reading assignment

  1. CLR: Sections 22.4-22.5.
  2. CLR: Chapter 23, pages 624-625.

Exercises and review questions


Last modified: 3 Nov 2015