当前位置: 首页 > 知识库问答 >
问题:

在对无向图使用Kruskal的MST时,是否可以使用n(V)

索寒
2023-03-14

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

  1. 按其权重的非递减顺序对所有边进行排序。
  2. 选择最小的边缘。检查它是否与到目前为止形成的生成树形成循环。如果没有形成循环,则包括此边。否则,将其丢弃。
  3. 重复步骤#2,直到生成树中有(V-1)条边。

这里,对于步骤#2,使用联合查找算法。

如果我们不采用这种方法,那么检查以下条件:

(图中已包含的顶点数)<=(图中已包含的边数)。我相信如果上面的条件是真的,就会有一个循环(因为不会有任何顶点的度是0)

我的方法有什么问题吗?虽然时间复杂度保持不变,因为我们仍然对边缘进行排序,但这种方法可以减少执行步骤#2所花费的时间和代码复杂度。

共有1个答案

葛志国
2023-03-14

不,你不能用这个,因为你可以在一个图中遇到一个循环,对于这个循环,n(V)>n(E)。

例如,图由4个顶点组成,有3条边,1-2、2-3、1-3。存在一个循环,但n(V)<=n(E)不是真的。

本质上,你所做的是检测出一个循环,如果n(V)<=n(E),但你没有证明,循环仅限于当它是真的情况。

 类似资料:
  • 问题内容: 例如; 我正在使用此类: 如果我想创建N个点(originTwo,originThree … originN); 我可以使用像这样的for循环吗? 如果它是可能的; 我如何给他们起不同的名字? 问题答案: 您可以将它们放入数组。 他们会全部使用相同的,并在这些条件下。 如果你有数组和你可以做这样的: 如果您不喜欢数组,则可以使用列表: 您将其称为

  • 我正在尝试构建一个REST应用程序,有一天可能会有数百万客户机使用它。记住这一点,我们预计会收到很多请求。我想知道它是否会倾向于使用冬眠或Spring通量。我们的数据库模型是高度相关的,因此我们不得不拒绝mongo和其他非关系数据库。我有几个问题: spring-webflow和hibernate可以一起使用吗? 如果问题1的答案是否定的,Spring通量是否具有像hibernate这样的缓存功能

  • 我制作了一个类 在另一个类中 正如您所看到的,我创建了这个数组,并将UImages与txt和txt2一起放置在其中。简单地说,我要向用户显示一个图像,然后输入一个描述图像的输入,然后检查它是否匹配txt和txt2。在运行模拟器时,我得到以下错误: ***由于未捕获异常“nSunKnownKeyException”而终止应用程序,原因:“[ SetValue:ForUndefinedKey:]:对于

  • 该应用程序将在没有任何警告的情况下编译良好。 我正在使用 等级1.5 支持库23.2('com.android.support:appcompat-v7:23.2.0') 这是我的应用程序构建。Gradle 这是撞车的地方。(请注意引用TextView的膨胀错误。)

  • 如果可能的话;我怎么给他们取不同的名字?

  • 问题内容: 我尝试使用achartengine向堆叠条形图的演示示例中添加另一组值,但我引入的新值未出现在图表上。堆叠杆是否限于两根? 问题答案: AChartEngine显示堆叠的条形图的方式存在误解。它并没有真正堆叠它们,而是将它们显示为一个。这意味着您将总是要先添加较大的值,然后再添加较小的值,依此类推,因为它呈现第一个序列,第二个序列位于第一个序列之上,依此类推。 更新:从1.2.0版开始