kruskal是求最小生成树的算法. 首先,kruskal就是把所有边按照权值从小到大的顺序排列,这一步可以直接使用sort,然后依次考查每一条边,设w=(u,v)表示从u到v的一条边的权值为w,则有: 情况1:u和v在同一个连通分量中,则加入(u,v)后会形成环,因此不能选择. 情况2:u和v不在同一个连通分量中,那么加入(u,v)一定是最优的,为什么呢?这个可以用反证法证明一下,在这里也就不多说啦. 这里有一份kruskal的实现代码(这份代码来自kuangbin神牛,final爷哦,大家可…