您的位置:首页 > 其它

最小生成树之算法记录【prime算法+Kruskal算法】【模板】

2017-05-01 19:04 393 查看

最小生成树之算法记录【prime算法+Kruskal算法】【模板】

首先说一下什么是树:

    1、只含一个根节点

    2、任意两个节点之间只能有一条或者没有线相连

    3、任意两个节点之间都可以通过别的节点间接相连

    4、除了根节点没一个节点都只有唯一的一个父节点

    5、也有可能是空树(不含任何节点)

最小生成树就是:

   在所有数据满足是一棵树的情况下一条将所有节点都连接起来且长度最短的一条路(因为任意两个节点之间有权值

 (相连的两点之间权值为一个具体的数,不相连的两个点之间权值为无穷大))

下面介绍通用的求最小生成树的两种算法:

 ps:这里用的两种算法都是用邻接矩阵实现适合点稠密型数据或者数据较小的情况:

 (1)prime算法:

kruskal算法:

 此算法的核心就是在并查集(并查集知识请看   知识小总结记录分类中的并查集(http://www.cnblogs.com/tonghao/p/4442821.html))的基础上对两点之间距离进行排序:

 find()函数用来查找根节点

 mix函数用来合并两个节点,使两个节点的父节点相同

 利用结构体排序:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: