DS-实验13 生成树 prim算法+kruskal算法

本文深入解析了生成树的概念,介绍了如何通过Prim算法构造最小生成树,包括连通图、最小生成树的定义、Prim算法的工作原理,以及如何一步步选择边来构建最小权重的树结构。重点讲解了算法的步骤和关键要素,适合理解最小生成树和算法实现者参考。
摘要由CSDN通过智能技术生成

<知识准备>


基础知识
生成树:

  • 给一个连通图,对应有可能不止一个生成树。每个节点都经过且只了一次,经过的边 和顶点的组合。
  • 连通图中的生成树必须满足以下 2 个条件:
    1.包含连通图中所有的顶点;
    2.任意两顶点之间有且仅有一条通路;
    生成树中边的数量 = 顶点数 - 1。

最小生成树:

  • 生成树的基础上,要求树的(n-1)条边的权值之和是最小的
  • (1)必须只使用该图中的边来构造最小生成树;->用边
  • (2)必须使用且仅使用(n-1)条边来连接图中的n个顶点;->路最少
  • (3)不能使用产生回路的边;->无环
  • (4)要求树的(n-1)条边的权值之和是最小的。->权值最小

prim算法

  • 点一个一个的往里加入,新加入点的选择方式是:
    已加入的点A(不一定最新)—没加入的B==边,找到最小权值,对应的B,把B作为下一个加进来的点。

  • 算法概念:
    Prim算法是一种构造性算法。假设G=(V,E)是一个具有n个顶点的带权连通无向图,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,则由G构造从起始顶点v出发的最小生成树T的步骤如下:
    (1)初始化U={v},以v到其他顶点的所有边为候选边;
    (2)重复以下步骤(n-1)次,使得其他(n-1)个顶点被加入到U中:
    1.从侯选边中挑选权值最小的边加入TE,设该边在V-U中的顶点是k,将k加入U中;
    2.考察当前V-U中所有顶点j,修改侯选边,若边(k,j)的权值小于原来和顶点j关联的侯选边,则用边(k,j)取代后者作为侯选边

  • List item

<参考资料>

感谢大大!
最小生成树之Prim(普里姆)算法
什么是生成树

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值