算法总结之最小生成树
2016-08-23 16:05
127 查看
最小生成树的作用:
有很多点,点点之间有很多边,边有边权,我们要选择一些边,将所有点互相联通,构成一颗树,即为最小生成树
模板题:http://codevs.cn/problem/1231/
算法:
prim
基本流程:开始从所有点 中任取一点,(通常取1号),然后找其他所有点离已经取得点构成的连通块最近的点,将其加入连通块,并将总代价加入这个点与联通块相连的边的边权,如此反复点数-1次即可。(找出离连通块最近的点可以使用堆优化)
代码:
kruskal
基本流程:
把所有边按照边权从小到大排序,从小到大扫,如当前边的两个端点,不在同一个并查集集合中,就将他们加入同一个并查集集合,并加入这条边。若两点在同一集合则忽略这条边。
代码:
有很多点,点点之间有很多边,边有边权,我们要选择一些边,将所有点互相联通,构成一颗树,即为最小生成树
模板题:http://codevs.cn/problem/1231/
算法:
prim
基本流程:开始从所有点 中任取一点,(通常取1号),然后找其他所有点离已经取得点构成的连通块最近的点,将其加入连通块,并将总代价加入这个点与联通块相连的边的边权,如此反复点数-1次即可。(找出离连通块最近的点可以使用堆优化)
代码:
基本流程:
把所有边按照边权从小到大排序,从小到大扫,如当前边的两个端点,不在同一个并查集集合中,就将他们加入同一个并查集集合,并加入这条边。若两点在同一集合则忽略这条边。
代码:
相关文章推荐
- 【算法总结-top K】堆--查找最小(大)的k个元素
- 贪心算法之最小生成树prim与单源最短路径dijkstra
- 程序员面试金典——解题总结: 9.18高难度题 18.6设计一个算法,给定10亿数字,找出最小的100万个数字。假定计算机内存足以容纳全部10亿个数字。
- 网络流相关算法总结,最大流EK算法,SAP算法,最小费用最大流,最小费用路算法,最大流最小割定理
- 贪心算法之最小生成树prim算法
- 最大流/最小割算法总结
- C++——算法基础之最小生成树(Prim 和 Kruskal)
- 最小生成树的两种算法总结(克鲁斯塔尔,prim)
- 贪心算法之最小生成树Kruskal
- 关于基本排序的总结选择排序: 算法是: ① 第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换。 ③第i趟排序 第i趟排序开始时,当前有序区和无序区
- 最小生成树相关算法总结
- 贪心算法之最小生成树(Prim)
- 最小生成树&最短路基础算法总结
- 经典算法之最小生成树
- 数据结构之(图之最小生成树)Kruskal(克鲁斯卡尔)算法
- 【算法总结-top K】堆--查找最小(大)的k个元素
- 数据结构总结之最小生成树
- 二分匹配总结(匈牙利算法+最大权+最小权)
- 贪心算法基础之最小生成树prim算法 51nod prim模板
- 二分匹配总结(匈牙利算法+最大权+最小权)