微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kruskal 的 MST:使用 Union-Find DS 的联合操作:保证在具有最小边权重的节点之间进行连接

如何解决Kruskal 的 MST:使用 Union-Find DS 的联合操作:保证在具有最小边权重的节点之间进行连接

在最小生成树中,我们需要在移动到其他边之前以最小的权重连接边。为了执行连接,我们使用 UF DS 的联合操作,它连接不相交数据集的代表元素。是否可以保证代表性元素将是我们打算加入的具有最小边权重的节点?如果我认为这是正确的,那么联接很可能发生在要联接的组件的其他节点上。

谢谢

解决方法

不,没有这样的保证。幸运的是,Kruskal's 使用了disjoint-set 数据结构来保持到目前为止扫描的边缘的连通性,并且代表对于这个目的并不重要。如果你最终想要树结构,你需要做一些不同的事情(边集上的 DFS,为不相交集数据结构子一个动态树,以便你可以加入实际的端点,使用 Prim 代替)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。