Best algorithm for detecting cycles in a directed graph

Peauters picture Peauters · Nov 4, 2008 · Viewed 320.5k times · Source

What is the most efficient algorithm for detecting all cycles within a directed graph?

I have a directed graph representing a schedule of jobs that need to be executed, a job being a node and a dependency being an edge. I need to detect the error case of a cycle within this graph leading to cyclic dependencies.

Answer

aku picture aku · Nov 4, 2008

Tarjan's strongly connected components algorithm has O(|E| + |V|) time complexity.

For other algorithms, see Strongly connected components on Wikipedia.