关闭

最小生成树

656人阅读 评论(0) 收藏 举报
分类:

0) 引论

这里的最小生成树是图论中的概念,是指在图中找到一个最小的树,这棵树包含所有的点,并且总的边的权重要最小。

这里我们说的图是指无向图。

下图所示为一个无向图的最小生成树。



下面我们看看解决这个问题的两种算法。


1) Prim’s algorithm

这个算法有点类似于Dijkstra algorithm。是一步一步的增长树。依次处理每一个顶点,选取最短的路径。

Prim’s algorithm也引入了Dijkstra algorithm中的Table来辅助树的生成。以上图的图为例:


这是初始化的表。


首先选择v1点,更新v2,v3,v4。


然后选择v4点,更新v3,v5,v6,v7。因为2<3,因此不更新v2.


然后选择v2点,没有需要更新的点

然后选择v3点,更新v6点。


然后选择v7点,更新v6,v5点。


还剩下两个点v5,v6;且v5与v6不邻接,因此此处不需要更新,直接选中v5,v6,显示其以处理即可。



2) Kruskal‘s algorithm

这个算法相当容易理解,首先把图的所有顶点看做是只有根的树,然后合并树,合并的原则是选取最小的权重的边,切不能是树形成圈。如下图所示







0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:225775次
    • 积分:2421
    • 等级:
    • 排名:第15978名
    • 原创:66篇
    • 转载:7篇
    • 译文:0篇
    • 评论:48条
    文章分类
    最新评论