有没有快速的方法来确定图表中最大的强连通组件的大小?
我的意思是,明显的方法意味着确定每个SCC(可以使用两个DFS
调用完成),然后循环遍历它们并取最大值。
我很确定如果我只需要那个组件的大小而只需要最大的那个,那么必须有一些更好的方法,但我想不出一个好的解决方案。有什么想法吗?
感谢。
答案 0 :(得分:1)
让我用另一个问题回答你的问题 -
如何在不检查所有值的情况下确定集合中哪个值最大?
答案 1 :(得分:0)
首先,你可以使用只需要一个DFS而不是两个DFS的Tarjan's algorithm。如果您清楚地理解算法,则SCC形成DAG,并且此算法以反向拓扑排序顺序找到它们。因此,如果您对图形有所了解(如可视化表示),并且如果您知道相对较大的SCC出现在DAG的末尾,那么您可以在找到几个SCC后停止算法。