首页 > 其他 > 详细

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

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

最小生成树(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] 无向图的最小生成树

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!