Kosaraju 算法Kosaraju’s Algorithm)是求 强连通分量 的线性时间算法,核心是两次深度优先搜索。

第一次在原图上记录顶点完成搜索的顺序,第二次在所有边反向后的图上按逆完成顺序搜索。第二次搜索每次访问到的一组顶点,就是一个强连通分量。