ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

图解:如何实现最小生成树(Prim算法与Kruskal算法)

2021-04-04 14:30:24  阅读:275  来源: 互联网

标签:Prim Kruskal 最小 生成 算法 顶点 横切 我们


如何理解与实现最小生成树呢?Prim算法与Kruskal算法背后的思想又是怎么样的呢?一起来探索吧~

文章目录:

  • 1.概念和性质
  • 2.思路探索
  • 3.Kruskal算法
  • 4.Prim算法
  • 5.代码实现

1.概念和性质

今天我们考虑的模型是加权无向图,问题是如何获取它的一幅最小生成树!首先,我们给出最小生成树的定义:

图的生成树是它的一棵含有其所有顶点的无环连通子图。一幅加权图的最小生成树(MST)是它的一棵权值(树中所有边的权值之和)最小的生成树。

如图所示:

一颗最小生成树(黑色部分)

首先,我们给出一些约定来简化问题(这并不会影响我们理解问题)

  • 只考虑连通图(如果不连通的话是不存在最小生成树的)
  • 边的权重可能是0或者负数
  • 所有边的权重各不相同(我们给出这个假设之后对于一幅图来说只存在唯一的最小生成树,这样方便我们理解,但是如果把这个限制条件去掉,我们之前得到的算法依然有效

    标签:Prim,Kruskal,最小,生成,算法,顶点,横切,我们
    来源: https://blog.csdn.net/chaotalk/article/details/115428292

    本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
    2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
    3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
    4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
    5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有