【发布时间】:2014-04-09 22:34:29
【问题描述】:
当图有多个连通分量时,我不确定如何实现 Kruskal 算法
根据我对 Kruskal 算法的理解,它反复将最小边添加到集合中。然后当所有的边都被检查时,它会返回最多的边的集合。
但是,如果我的图表断开连接怎么办?说我有:
A - B - C - D
E - F
假设 Cost( A - B ) = Cost( E - F ) = 1,其余边大于 1
当我运行 Kruskal 时,我会获得所有边缘的成本,但我想获得连接组件的每个成本,因此我对所有连接组件进行平均最小成本。
【问题讨论】:
-
这是一道编程题?在另一个 StackExchange 网站上,您可能会有更好的运气。
-
Kruskal 会给你一个最小的跨越森林。如果您想要该森林中一棵树的成本,只需将其相加即可。有什么问题?
-
我需要取每个森林的平均值。
-
您的语言不清楚。假设
cost(B-C)是 2,cost(C-D)是 6。现在告诉我们你要计算什么。 -
Kruskal 在这种情况下会给你一个最小的跨越森林。只需要在运行 Kruskal 之前或之后找到连接的组件,真的没关系。
标签: algorithm graph minimum-spanning-tree kruskals-algorithm