数据结构-图论-最小生成树

1.最小生成树的概念

对于一个带权连通无向图G=V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree,MST)

性质:

  • 最小生成树可能有多个,但边的权值之和总是唯一且最小的
  • 最小生成树的边数=顶点数-1。砍掉一条则不连通,增加一条边则会出现回路
  • 如果一个连通图本身就是一棵树,则其最小生成树就是它本身
  • 只有连通图才有生成树,非连通图只有生成森林

2.求最小生成树

1.Prim算法

从某一个顶点开始构建生成树;

每次把代价最小的新顶点纳入生成树,直到所有顶点都纳入生成树为止。

eg:从P城开始构建最小生成树

2.kruscal算法

每次选择一条权值最小的边,连通边的两端(原本连通的不选),直到所有顶点都连通

3.总结

算法名称 基本思路 时间复杂度 适用图类型
Prim 算法 (普里姆) 从一个顶点开始,每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止。 O(V^2) 边稠密图
Kruskal 算法(克鲁斯卡尔) 每次选择权值最小的边,使这条边的两头连通(原本已连通的边不选),直到所有结点都连通为止。 O(E*log_2E) 边稀疏图
相关推荐
kisshyshy12 小时前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
猿人谷20 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络21 小时前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络21 小时前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao40021 小时前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao40021 小时前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法
JieE2122 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2123 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack204 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树4 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色