我们可以使用nV<= nE来检测周期,同时使用Kruskal的MST生成无向图吗?

问题描述

根据GeeksForGeeks,在无向图中找到最小生成树的步骤是:

  1. 以不减小其重量的顺序排列所有边缘。
  2. 选择最小的边缘。检查它是否与形成的生成树形成一个循环。如果未形成循环,则包括该边。否则,将其丢弃。
  3. 重复步骤2,直到生成树中有(V-1)个边为止。

此处,对于第2步,使用了联合查找算法。

如果不检查以下情况,怎么办呢?

(图中已包含的顶点数)

我的方法有什么问题吗? 尽管由于我们仍在对边缘进行排序,所以时间复杂度保持不变,但是这种方法可以减少执行第二步所需的时间和代码复杂度。

解决方法

不,您不能使用它,因为您可能会在图形中遇到n(V)> n(E)的循环。

例如,图由4个顶点组成,并且有三个边,即1-2、2-3和1-3。有一个循环,但n(V)

本质上,您所做的是在n(V)

,

@Maurycat告诉我们,当图形中有两个组件并且其中一个组件具有循环时,这将不成立。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...