Algorithm 寻找强连接组件?

Algorithm 寻找强连接组件?,algorithm,graph,computer-science,Algorithm,Graph,Computer Science,我的书定义了一种在线性时间内找到有向图的强连通部分的方法。此外,其他几种寻找强连通分量的算法(即Tarjan算法)也能够在线性时间内找到这些分量 然而,所有这些算法都要求图的顶点按递减的post值排序(顶点离开的时间)。常见的排序算法,如Mergesort,需要O(n logn)时间 因此,如果按post值排序顶点列表需要O(n log n)个时间,那么这些算法如何在线性时间内完成强连接组件的定位?因为“时间”(测量post值的类型)作为时间的函数是单调的(深度优先搜索程序执行的步数),遍历结束

我的书定义了一种在线性时间内找到有向图的强连通部分的方法。此外,其他几种寻找强连通分量的算法(即Tarjan算法)也能够在线性时间内找到这些分量

然而,所有这些算法都要求图的顶点按递减的post值排序(顶点离开的时间)。常见的排序算法,如Mergesort,需要O(n logn)时间

因此,如果按post值排序顶点列表需要O(n log n)个时间,那么这些算法如何在线性时间内完成强连接组件的定位?

因为“时间”(测量post值的类型)作为时间的函数是单调的(深度优先搜索程序执行的步数),遍历结束后,只要将每个节点立即附加到列表中即可。遍历结束时,列表按顺序排序

或者,由于post值是多项式上有界的整数,因此在某些机器模型上,可以使用基数排序等线性时间对其进行排序