最小生成树是一副连通加权无向图中一棵权值最小的生成树。如果图的边的权值都为正数,那么最小生成树就是该图的所有包含所有顶点的子图中权值最低的子图。
主要有两种算法,对应了两种思路。
Prim算法
Prim算法的每一步都会为一棵生长中的树添加一条边,该树最开始只有一个顶点,然后会添加个边。每次总是添加生长中的树和树中除该生长的树以外的部分形成的切分的具有最小权值的横切边。
Kruskal算法
按照边的权重顺序(从小到大)将边加入生成树中,但是若加入该边会与生成树形成环则不加入该边。直到树中含有条边为止。这些边组成的就是该图的最小生成树。
总结
两种算法即分别从边出发,或者由点出发思考问题,时间复杂度也根据对应要素相关。两种算法也分别 有对应的优化算法。