基本概念
假设要在n个城市之间建立通信联络网,则连通n个城市只需要n-1条线路。这时,自然会考虑如何在最省经费的前提下完成任务。
在一个连通网的所有生成树中,各边的代价之和最小的那棵生成树称为该连通网的最小生成树。
MST性质:最小生成树中必定存在一条具有最小权值的边。普利姆(Prim)算法和克鲁斯卡尔(Kruskal)算法是两个利用MST性质构成最小生成树的算法。
普利姆算法的核心思想是归并点,时间复杂度为O(n²),适用于稠密网;
克鲁斯卡尔算法的核心思想是归并边,时间复杂度为O(elog2e),使用与稀疏网。
克鲁斯卡尔算法(加边法)
如果说普利姆算法是“加点法”,那么克鲁斯卡尔算法就是“加边法”。
<逻辑思路>
(1)将由n个顶点组成的连通图拆分成n个连通分量,即每个顶点为一个连通分量;
(2)将图上的所有边按权值排序;
(3)从最小边开始操作,归并边的判断条件是下一条被选边不能使连通分量形成回路,即被选边的两个顶点h