当图有多个连通分量时,我不知道如何实现Kruskal算法
根据我对Kruskal算法的理解,它多次向集合中添加最小边。然后,当所有的边都被检查时,它会返回一组最充分的边。
但是,如果我的图是断开的呢?说我有:
A - B - C - D
E - F
假设成本( are )=成本(E)= 1,其余的边大于1。
当我运行Kruskal时,我会得到所有的边的成本,但是我想得到每个连接组件的成本,所以我对所有连接的组件做了一个平均最小的成本。
我有一个无向图,完全图,并希望将它转换成一个有向无圈图,在每个节点之间有一个(单向)路径。为了开始,我想添加随机边和停止一旦所有节点连接。需要研究的是一个算法(使用Python,但任何语言都可以)。
因此,例如,这个图不再被进一步连接:
A ---- B A ---> B
\ / => /
\ / v
C C
,但在这种情况下,所有无向边都会变成有向边。
A ---- B A ---> B
\