您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页数据结构_图_最小生成树

数据结构_图_最小生成树

来源:伴沃教育

图-最小生成树(联通网的最小代价生成树)

(有规律的连续访问多个顶点的需求)

假设你是电信实施工程师,需要为一个镇的九个村庄架设通信网络做设计,村与村之间的距离就是边的权重,领导要求用最小成本完成任务,你该怎么做???

  1. 最小生成树也就是最小权重生成树
  2. n个顶点拥有n-1条边(想想树的节点个数),使得所有顶点之间都有路径可达
  3. n个节点之间不能构成回路 重要!!!

Prim算法/普里姆算法

原理:对于图G=(V,E),用Prim算法求最小生成树T=(S,TE)的流程如下:

  1. 初始化:设S、TE为空集,任选顶点k加入S
  2. 选取一条权值最小的边(X,Y), 其中X S(X属于S),且 NOT(Y S)(Y不属于S),即:选取一条权值最小的、连接着S中一顶点和S外一顶点的边
  3. 重复步骤2,直到所有顶点都在S中

Kruskal算法

原理:图G=(V,E)

  1. 最小生成树T=(S,TE)
  2. 将G中的所有边按照权重进行升序排序,从小到大加入最小生成树
  3. 如果将选中的边加入TE后,TE不会形成环(回路),则加入,否则丢弃
  4. 重复步骤3,直到所有顶点都在S中

图形推演

总结

可以从图中看到,两种算法最后生成的最小生成树是一样的

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务