百科问答小站 logo
百科问答小站 font logo



算法导论求有向图强连通分量:按拓扑排序,求反向图的DFS。若改成按拓扑排序倒序,用原图做DFS,错在哪? 第1页

  

user avatar   feng-kuang-shen-shi-92 网友的相关建议: 
      

原图不行,能求出的是一个环但不是回路。求回路有3个经典算法。

1、ISM/AISM

在讲求强连通子集的时候,先了解一个文科生常用的方法,解释结构模型与对抗解释结构模型。

上面一篇是一个艺术设计的,然后发了一篇在计算机刊物中的论文。里面用到了AISM可以去看看。

上面是AISM的一个计算地址,它的第一步就是求强连通分量。

2、求强连通分量的三大算法

kosaraju(克鲁斯克尔)算法是用于求有向图的强连通分量的算法之一

时间复杂度:O(M+N) 注:M代表边数,N代表顶点数。

这个就是题主说的。

Tarjan算法是用于求有向图的强连通分量

Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量。强连通分量是指有向图G里顶点间能互相到达的子图。而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连通分量就是极大强连通分量。

时间复杂度:O(M+N) 注:M代表边数,N代表顶点数。

Gabow算法是用于求有向图的强连通分量

Gabow算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量。强连通分量是指有向图G里顶点间能互相到达的子图。而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连通分量就是极大强连通分量。

这个其实就是双指针。

上面三个方法其实是一回事。

上面是三种方法的速度比较。




  

相关话题

  哪些开发会用到微积分、离散数学、线性代数、概率论的知识? 
  很多高效排序算法的代价是 nlogn,难道这是排序算法的极限了吗? 
  算法A时间复杂度O(n²),算法B时间复杂度为O(n³),为什么选择算法B而不选算法A的6个理由? 
  在一段高速公路上,30分钟之内见到汽车经过的概率是95%,那么,在10分钟内见到汽车经过的概率是多少? 
  算法导论求有向图强连通分量:按拓扑排序,求反向图的DFS。若改成按拓扑排序倒序,用原图做DFS,错在哪? 
  如何看待网传字节跳动 28 岁图像算法工程师心梗猝死?还有 30 年房贷没还完,可以退房退款吗? 
  递归的本质是什么? 
  递归和循环相比耗费更多的空间,对于循环来说除了可以简化逻辑外还有什么优点吗? 
  智能座舱的算法包括哪些方面? 
  这张图中能数出多少个三角形? 

前一个讨论
一个关于拓扑排序的扩展问题,可以做到的最优复杂度是?
下一个讨论
请教拓扑排序中的一点疑问?





© 2025-05-18 - tinynew.org. All Rights Reserved.
© 2025-05-18 - tinynew.org. 保留所有权利