用结构体数组储存起点,终点,和权值 ,根据权值sort从小到大排序
然后循环这个结构体数组,用并查集插入起点和终点
这样的话,每次把最小权值的一条没有重复过的路纳入集合,再加个判断,并查集纳入总共会执行n-1次(因为有一个根),如果数目到n-1直接退出就好了。
(一开始我很怀疑这样的做法,每次把最小权加进去,如果最后剩的那条路非常大的话,那不就出错了。但是实际上并查集有了祖宗后,只关心子孙,没被纳入的话不管起点是什么,直接纳入就好了,所以这个做法是没问题的,也相对简单)
本文介绍了一种使用结构体数组存储边信息,并结合并查集实现的最小生成树算法。通过将边按权值从小到大排序,循环结构体数组,每次将权值最小且未重复的边加入并查集,最终形成包含n-1条边的最小生成树。
用结构体数组储存起点,终点,和权值 ,根据权值sort从小到大排序
然后循环这个结构体数组,用并查集插入起点和终点
这样的话,每次把最小权值的一条没有重复过的路纳入集合,再加个判断,并查集纳入总共会执行n-1次(因为有一个根),如果数目到n-1直接退出就好了。
(一开始我很怀疑这样的做法,每次把最小权加进去,如果最后剩的那条路非常大的话,那不就出错了。但是实际上并查集有了祖宗后,只关心子孙,没被纳入的话不管起点是什么,直接纳入就好了,所以这个做法是没问题的,也相对简单)

被折叠的 条评论
为什么被折叠?