码迷,mamicode.com
首页 > 其他好文 > 详细

[Data Structure & Algrithom] 无向图的最小生成树

时间:2018-09-30 18:11:28      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:结构   基本   span   复杂度   数据   集合   一个   kruskal算法   长度   

最小生成树(Minimum Spanning Tree) - 连接所有顶点的边的权值之和最小的树

Prim算法

  • 基本思路 - 设 图的顶点集合为V;其最小生成树的顶点集合为U
    1. 将某个顶点放入U
    2. 在一个顶点属于U,另一个顶点属于V-U的所有的边中,找到权值最小的边
    3. 将找到的边的不属于U的顶点,放入U中,重复2,直至U中包含了所有顶点
  • 具体实现
    • 引入辅助数组edge[],长度等于顶点数
      • 结点结构 - 数据域vertex(与该顶点相连的另一顶点)|权值cost(这条边的权值)
      • 对于在U中的结点 i - edge[i].cost = 0
      • 对于在V-U中的结点 j -edge[j]代表与结点j相连的权值最小的边
    • 时间复杂度 O(n2) (与边的数量无关)
  • 适用于边稠密的图

Kruskal算法

  • 基本思路
    1. 在图中选择权值最小的边
    2. 如果这条边不会形成环路,则选择这条边;否则,查找下一权值的边
  • 时间复杂度(与顶点数量无关)
    • O(n2) - 已经按照边的权值排序
    • O(elog2e) - 未按照边的权值排序
  • 适用于边系数的图

[Data Structure & Algrithom] 无向图的最小生成树

标签:结构   基本   span   复杂度   数据   集合   一个   kruskal算法   长度   

原文地址:https://www.cnblogs.com/break-dawnn/p/9732653.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!