【贪心】Prim和Kruskal算法的区别

Kruskal算法和Prim算法的优劣

Kruskal算法,相较于Prim算法是基于点的操作,Kruskal算法是基于边的操作,思想也比Prim简单,更容易理解

Prim算法是采用从点方面考虑来构建MST的一种算法,Prim 算法在稠密图中比Kruskal优。

示例

Prim算法

  1. 从源点出发,把源点所有的边加入一个集合(称为待选边集合E{}图1
  2. E{}中选出最短边,连接并移除,并将该点的所有的边加入E{}       图2
  3. 不断重复此步骤,如果遇到边已连接,则跳过此边并从E{}移除。

步骤图

1.

2.

3.

4.

5.

6.

7.

Kruskal算法

与Prim算法不同的是,

  1. 先将所有的边排序
  2. 连接并移除当前最短边,不断重复
  3. 如果步骤2遇到边的连接会形成环形,则跳过此边并移除。 如图5

步骤图

1.

2.

3.

4.

5.

6.

7.

【图解】Prim和Kruskal算法的区别相关推荐

  1. dijkstra算法_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

    讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的<算法>或reference的链接,本文主要还是想在一篇文章中记录六种算法的Pyth ...

  2. dfs时间复杂度_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

    讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的<算法>或reference的链接,本文主要还是想在一篇文章中记录六种算法的Pyth ...

  3. 最小生成树(Prim、Kruskal)算法,秒懂!

    前言 在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法.但是可能很多人对概念不是很清楚,什么是最小生成树? 一个有 n 个结点的连通图的生成树是原图的极小连通子 ...

  4. Prim和Kruskal算法应用----城市水管连接

    Prim和Kruskal算法应用----城市水管连接 问题描述: Description: 现在有n个城镇,编号为1, 2, 3, 4-n.他们之间有m条互通的道路,每条道路有相应的长度,现在基于这些 ...

  5. 【最小生成树】Prim算法和Kruskal算法的区别对比

    Prim算法和Kruskal算法都是从连通图中找出最小生成树的经典算法- 从策略上来说,Prim算法是直接查找,多次寻找邻边的权重最小值,而Kruskal是需要先对权重排序后查找的- 所以说,Krus ...

  6. 数据结构(六):图的概念、存储方式、基本操作、最小生成树、最短路径、有向无环图、关键路径 | Prim、Kruskal算法 | BFS、Dijkstra、Floyd算法 | 拓扑排序 | 求关键路径

    文章目录 第六章 图 一.图 (一)图的定义 (二)图逻辑结构的应用 (三)无向图.有向图 (四)简单图.多重图 (五)顶点的度.入度.出度 (六)顶点-顶点的关系描述 (七)连通图.强连通图 (八) ...

  7. Prim和Kruskal算法

    1. Prim算法 1.1 概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex ...

  8. 浙大数据结构:08-图7 公路村村通 (30 分)Prim与Kruskal算法

    08-图7 公路村村通 (30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N( ...

  9. 【NOJ1596、1597】【贪心算法之最小生成树】最少修建多长的公路能把所有村庄连起来(图示Prim与Kruskal算法)

    1596.最少修建多长的公路能把所有村庄连起来(一) 时限:1000ms 内存限制:10000K  总时限:3000ms 描述 一个地区有n个村庄,有一些村子之间可以修路,已知每条路的长度,问最少修建 ...

最新文章

  1. MVC日期和其它字符串格式化
  2. [Android开发] 启程
  3. 科大星云诗社动态20210427
  4. 值得关注的医疗 AI 公司(待续)
  5. 【Swift学习笔记-《PRODUCT》读书记录-实现自定义转场动画】
  6. 查看ie保存的表单_解决浏览器保存密码自动填充问题
  7. NumPy Beginner's Guide 2e 带注释源码 五、处理 NumPy 矩阵和 ufunc
  8. 江苏地区BA还真是慢得很
  9. 基于Dynomite的分布式延迟队列
  10. Python字符串的截取|Python练习题
  11. 通过指针获取输入的字符串
  12. 449A - Jzzhu and Chocolate 贪心
  13. Tomcat无法成功启动startup.bat解决方法(闪退)
  14. Mac卸载Anaconda
  15. 如何根据论文提供的敏感度与特异度求出ROC/AUC
  16. 加仓减仓口诀_加仓减仓口诀
  17. 黑马程序员SpringBoot基础篇SSMP整合案例
  18. Tableau仪表板搭建
  19. 自动驾驶系统进阶与项目实战(四)自动驾驶高精度地图构建中的三维场景识别和闭环检测
  20. 基于微信小程序的个人健康打卡系统设计与实现-计算机毕业设计源码+LW文档

热门文章

  1. 微信小程序-textarea字数统计与限制
  2. 计算机网络课程设计ipv6,实验:IPv6协议的配置和使用
  3. 每次打开word2007都要配置进度解决办法
  4. 程序设计 -- 节约用电
  5. python实现质因数分解算法
  6. 百度一下,你就知道?
  7. 修改密码 passwd
  8. uniapp中template标签和block标签的区别
  9. Js ——CloneNode()用法
  10. 53784-29-5,2,3,4,6-Tetra-O-acetyl-α-D-mannopyranosyl Azide