最小生成树算法讨论(转)
一些定义:
1.一个连通且无回路的无向图称为树.
2.若图G的生成子图是一棵树,则该树称为G的生成树.
3.在图G的所有生成树中,树权最小的那棵生成树,称作最小生成树.
关于找出最小生成树的两种算法,一个称为Kruskal(克鲁斯卡尔),另一个叫Prim(普里姆)
(1) Kruskal 算法
step1: 选取最小权边e1, 置边数i=1
step2: 若 i=n-1 结束,否则转到step3
step3: 设已选择边为e1,e2,...ei 在 G中选取不同于e1,e2,...,ei的边, 使{e1,e2,...,ei,ei+1}中无回路且ei+1是满足此条件的最小边.
step4: i= i+1 转 step2
一句话记住此算法: 在保证无回路前提下选n-1条最小权边.
如下图演示了此算法.
(2) Prim算法(普里姆算法)
step1: 找出存在最小权边的点.
step2: 若所有顶点已经过完,则结束.否则跳step3
step3: 通过已存在的点构成的树来计算出此树到其它未到达的点的最小权.
step4: 选取step3中标记的最小权边的顶点.转至step2.
注:此步骤为自己总结的,如有错误请指正.^_^
比较优劣:
从二者的原理来看,Kruskal是基于边的算法,Prim是基于顶点的.因此对于一个边数很多的图,用Kruskal算法不明智.而顶点多边少的图用Kruskal效率多了
(转)http://www.cnblogs.com/zimmerman/archive/2007/10/06/915704.html
最小生成树算法讨论(转)相关推荐
- 最小生成树算法-克鲁斯卡尔和普利姆
http://www.cnblogs.com/qianbixin/p/5005161.html http://www.cnblogs.com/yoke/p/6697013.html 学习最小生成树算法 ...
- 最小生成树 算法_最小生成树算法
最小生成树 算法 距离我的资格考试只有十天的路程,我决定离开教科书,改回写作. 毕竟,如果我可以解释这些概念,那么我应该能够通过对它们的测试,对吗? 好吧,今天我很有趣地介绍了算法课程中的一个概念:最 ...
- 技术图文:如何利用C# 实现 Prim 最小生成树算法?
背景 我们上一篇图文介绍了 如何利用 C# 实现 Kruskal 最小生成树算法?,Kruskal 算法通过寻找边最优的方式来构造最小生成树,本篇图文介绍如何利用 C# 实现 Prim 最小生成树算法 ...
- 最小生成树算法MST_kruskal算法
每日一贴,今天的内容症结字为最小生成树算法 MST(minimum spanning tree)即最小生成树算法,经典的有两个,这里分析一下kruskal算法.关于另外的一个prim算法,本blog也 ...
- 大话数据结构18:最小生成树算法
prim最小生成树算法 对于几个图G{V,E};首先从V中任意选择一个顶点Vo 将其加入到顶点集合U中,在顶点集合V-U中计算所有到V中任意顶点假设是Vo最近的顶点Voo,将其加入到U中,并且记录边E ...
- 证明kruskal算法求解图的最小生成树具有贪心选择性质_将并查集应用在图论中的最小生成树算法——Kruskal...
点击上方蓝字,和我一起学技术. 今天是算法和数据结构专题的第19篇文章,我们一起来看看最小生成树. 我们先不讲算法的原理,也不讲一些七七八八的概念,因为对于初学者来说,看到这些术语和概念往往会很头疼. ...
- 最小生成树算法(两个方法实现)
何为最小生成树算法呢?(记得前提是该数是无向树)(在保证一个图连通的情况下,权值最小的边的集合) 科普一下图的相关定义: 关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都 ...
- 个人总结---连通图的最小生成树算法
最近在复习数据结构和算法的的内容,栈和队列的思想是比较深刻,借于许多高级语言都有相应的框架实现了栈和队列链表等,所以对于这一类,我们只需要了解其思想,在真正操作时,也会显得比较简单.但是还有一类数据结 ...
- 2021年SWPUACM暑假集训day3最小生成树算法
前言 视频链接 视频连接:https://www.bilibili.com/video/BV1wV411s7Pe 练习题单 SWPUOJ题单:http://acm.mangata.ltd/traini ...
最新文章
- gulp之gulp.watch报错
- sh mysql config_解决python安装mysqlclient出现“/bin/sh:1:mysql_config:not found”错误...
- 统计学里“P”的故事:蚊子、皇帝的新衣和不育的风流才子
- 数据预处理—4.为什么要趋近于正态分布?详解
- OEA ORM 框架中的冗余属性设计
- [ios] - TommyBros(山寨马里奥) – 开源游戏
- java game nokia 5233 model,诺基亚S60/^3完美运行GBA游戏教程 重回孩提时代
- smart检测指标详解
- 中企海外周报 | 华为在德国发布mate30系列手机;一汽新车亮相法兰克福车展
- XFS (dm-0) I/O error问题修复
- 经济学原理笔记-微观CP12-税制的设计
- python之迷宫小游戏
- phython学习第二天
- Rust的错误处理机制
- C语言从一段字符串中提取IP地址的方法
- android开发学习:打电话和发短信
- onnx-modifier使用
- 怎么关闭Windows安全启动?
- 【Try to Hack】Kerberos基础
- 汉字转拼音函数 linux,oracle 汉字转拼音