通过搜索网络,我可以找到2(kruskal和prims)算法来查找最小生成树。但是这个算法
*let T be initially the set of all edges
*while there is some cycle C in T
remove edge e from T where e has the heaviest weight in C
通过搜索网络找不到。我该如何实现这个算法。我怎样才能找到所有可能的周期?
答案 0 :(得分:1)
按降序对边进行排序,然后每次尝试删除边。检查图表是否已连接。如果在删除边之后图形仍然连接,则可以保证边缘处于循环中。
答案 1 :(得分:1)
实现这一目标的最简单方法是通过Union-Find数据结构(参见下面的链接)。检查周期可以在O(1)时间内完成,并且添加新边缘需要每个节点进行平均O(log V)处理,需要总运行时间为O(E + V log V)。我们可以使用更高级的数据结构来实现接近线性的时间界限。