In the mathematical theory of directed graphs, a graph is said to be strongly connected
if every vertex is reachable from every other vertex. The strongly connected components of an
arbitrary directed graph form a partition into subgraphs that are theselves strongly connected.
In computer science, Kosaraju's algorithm, also known as the Kosaraju-Sharir algorithm, is a linear time algorith to find the strongly connected components of a directed graph.