在有向图G 中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。
如果有向图G 的每两个顶点都强连通,称G 是一个强连通图。
非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。
下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达,{5},{6}也分别是两个强连通分量。
直接根据定义,用双向遍历取交际的方法求强连通分量,时间复杂度为O(N^2+M)。更好的方法是Kosaraju算法或者Tarjan算法。
两者的时间复杂度都是O(N+M)。