Strongly Connected Components — Kosaraju
Kosaraju finds strongly connected components in a directed graph using two DFS passes and the transposed graph.
Beginne mit diesem mentalen Modell
Kosaraju finds strongly connected components in a directed graph using two DFS passes and the transposed graph.
So funktioniert es – ohne unnötigen Jargon
First DFS records vertices by finishing time.
Reverse all edges, then DFS in decreasing finish-time order; each traversal forms one SCC.
Lies den Algorithmus als Folge von Entscheidungen
Define directed/undirected and weighted/unweighted assumptions.
Choose the graph representation.
Track algorithm state and handle disconnected/cyclic cases explicitly.
Read a tiny input by hand and write down the state after every important operation. For Strongly Connected Components — Kosaraju, the goal is to make the invariant visible rather than to memorize code.
Varies by implementation / input constraints
Do not quote this complexity mechanically. Ask which operation or input dimension it describes, then derive the cost from the loops, recursion depth, data-structure operations and any preprocessing assumptions.
Gut geeignet
- Use the algorithm only when its graph assumptions match the problem.
Was typischerweise schiefgeht
- Forgetting disconnected components.
- Mixing weighted and unweighted shortest-path algorithms.
- Not protecting against revisits/cycles.
Struktur einer professionellen Antwort
Explain why transpose preserves nodes inside each SCC while reversing the edges between SCCs; that is the intuition behind the two passes.
What problem does Strongly Connected Components — Kosaraju solve?
Kosaraju finds strongly connected components in a directed graph using two DFS passes and the transposed graph.
Was sollte ich zur Komplexität erwähnen?
Its typical cost here is Varies by implementation / input constraints, but a complete answer should connect that cost to the representation, input constraints and the dominant operations.
Was ist der häufigste Fehler?
Forgetting disconnected components.