📅  最后修改于: 2023-12-03 15:33:00.086000             🧑  作者: Mango
在图论中,最小生成树是指一个无向连通图中,所有边的权值和最小的生成树。MST(最小生成树)的求解是图论中一个经典问题。主流的求解方法有 Prim 算法和 Kruskal 算法。
Prim 算法采用贪心策略,每次从当前已选定的点集连出的所有边中,选择一条权重最小的边,并将该边的端点加入点集。可以使用优先队列来找到权重最小的边。
Prim 算法的时间复杂度为 $O(n^2)$ 或 $O(n\log{n})$,具体取决于边的存储方式。
Kruskal 算法同样采用贪心策略,每次从未选中的边中找到权重最小的边,并将其加入最小生成树中。为了避免出现环,使用并查集来判断是否出现了环。
Kruskal 算法的时间复杂度为 $O(m\log{m})$,其中 $m$ 是边的数量。