学习数据结构强烈推荐大家用这个可视化网站学习
这个算法是用来求最小生成树的。
简单来说就是每次选择最小边,看边两端点是不是都已经属于某个树了,只要有一个新加入端点,这条边就选择。
下面这数据结构是用来维护属于哪一颗树的。开始都是-1表示独立的树,正数表示已经属于某个数,如图二中2对应1,查找到2时就跳转到1去看它属于哪颗树。
两个都是负数,就需要合并树:假如点1=-3,点2=-5就合并到(绝对值大的)点2的-5上,把点1的值改为2,意思是跳转到2去查属于哪颗树,点2改为-3+(-5)=-8