如何解决我们可以使用nV<= nE来检测周期,同时使用Kruskal的MST生成无向图吗?
根据GeeksForGeeks,在无向图中找到最小生成树的步骤是:
- 以不减小其重量的顺序排列所有边缘。
- 选择最小的边缘。检查它是否与形成的生成树形成一个循环。如果未形成循环,则包括该边。否则,将其丢弃。
- 重复步骤2,直到生成树中有(V-1)个边为止。
此处,对于第2步,使用了联合查找算法。
如果不检查以下情况,怎么办呢?
(图中已包含的顶点数)
我的方法有什么问题吗? 尽管由于我们仍在对边缘进行排序,所以时间复杂度保持不变,但是这种方法可以减少执行第二步所需的时间和代码复杂度。
解决方法
不,您不能使用它,因为您可能会在图形中遇到n(V)> n(E)的循环。
例如,图由4个顶点组成,并且有三个边,即1-2、2-3和1-3。有一个循环,但n(V)
本质上,您所做的是在n(V)
,@Maurycat告诉我们,当图形中有两个组件并且其中一个组件具有循环时,这将不成立。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。