一、Prim算法

普利姆(Prim)算法适用于求解无向图中的最小生成树(Minimum Cost Spanning Tree)。下面是Prim算法构造最小生成树的过程图解。

选择一个节点开始,比如V1进入集合U,剩下的集合的V-U包括剩下的节点,然后寻找从集合U到集合V-U最近的路径。这里有三条路径分别是权重为6到V2,权重为5到V4以及权重为1到V3,显然到通过V3连接而集合U和集合V-U是最近的,选择V3进入集合U。同样继续选择到V-U的路径,此时有6条可选路径,分别是权为6到V2【从V1】,权为5到V4【从V1】,权为5到V2【从V3】,权为5到V4【从V3】,权为6到V5【从V3】,权为4到V6【从V3】。选择出从V3到V6的路径并将V6添加至集合U中。按照这种方法依次将V4,V2和V5添加到集合U直到U和全体节点结合V相等,或者说V-U集合为空时结束,这时选出的n-1条边即为最小生成树。

二、Kruskal算法

克鲁斯卡尔(Kruskal)算法是另一种求解最小生成树的算法。下面是Kruskal算法构造最小生成树的过程图解。

Kruskal则是采取另一种思路,即从边入手。首先n个顶点分别视为n个连通分量,然后选择一条权重最小的边,如果边的两端分属于两个连通分量,就把这个边加入集合E,否则舍去这条边而选择下一条代价最小的边,依次类推,直到所有节点都在同一个连通分量上。

三、对比

假设网中有n个节点和e条边,普利姆算法的时间复杂度是O(n^2),克鲁斯卡尔算法的时间复杂度是O(eloge),可以看出前者与网中的边数无关,而后者相反。因此,普利姆算法适用于边稠密的网络而克鲁斯卡尔算法适用于求解边稀疏的网。

prim算法适用条件_Prim算法和Kruskal算法介绍相关推荐

  1. 【数据结构算法】图解prime算法和Kruskal算法(最短路径问题)

    最小生成树: 带权连接图中最小生成树:含所有顶点(n个)和n-1条边且它们权值之和最小 Prime算法:拉点法 时间复杂度:O(n*2),n为顶点个数 先选一个顶点放入集合U中,然后把U外顶点和U中任 ...

  2. 【Java数据结构与算法】第十九章 贪心算法、Prim算法和Kruskal算法

    第十九章 贪心算法.Prim算法和Kruskal算法 文章目录 第十九章 贪心算法.Prim算法和Kruskal算法 一.贪心算法 1.介绍 2.支付问题 二.Prim算法 1.最小生成树 2.介绍 ...

  3. 求的带权图最小生成树的Prim算法和Kruskal算法

    求的带权图最小生成树的Prim算法和Kruskal算法 最小生成树的概念 最小生成树其实是最小权重生成树的简称. 一个连通图可能有多个生成树.当图中的边具有权值时,总会有一个生成树的边的权值之和小于或 ...

  4. 作业1-采用Prim算法和Kruskal算法构造最小生成树

    采用Prim算法和Kruskal算法构造最小生成树 实验报告 1.问题 2.解析 (1)Prim算法 (2)Kruskal算法 3.设计 (1)Prim算法 (2)Kruskal算法 4.分析 (1) ...

  5. 最小生成树之Prim算法和Kruskal算法

    一个连通图可能有多棵生成树,而最小生成树是一副连通加权无向图中一颗权值最小的生成树,它可以根据Prim算法和Kruskal算法得出,这两个算法分别从点和边的角度来解决. Prim算法 输入:一个加权连 ...

  6. Prim算法和Kruskal算法

       Prim算法和Kruskal算法都能从连通图找出最小生成树.区别在于Prim算法是以某个顶点出发挨个找,而Kruskal是先排序边,每次选出最短距离的边再找. 一.Prim(普里姆算法)算法: ...

  7. matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现

    Prim算法和Kruskal算法的Matlab实现 <计算机仿真>期末大作业 Prim算法和Kruskal算法的Matlab实现 05605刘禹050697(30) 连线问题应用举例: 欲 ...

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

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

  9. 加权无向图与最小生成树(Prim算法和Kruskal算法)

    目录 0 引入 1 图的最小生成树定义及相关约定 2 最小生成树原理 2.1 性质 2.2 切分定理 3 贪心思想 4 Prim算法 4.1 算法步骤 4.2 API设计 4.3 Java代码演示 5 ...

最新文章

  1. 代理模式(为对象提供相同的接口)
  2. cmd长ping记录日志和时间_四个网络命令ping、arp、tracert、route的详细用法
  3. 同时画多个饼图_手帐术 | 这个神奇饼图里,藏着时间管理的小秘诀
  4. MyBatis generator 注解方式和xml方式
  5. 在 IDEA 中配置 PlantUML (一门快速画图的设计语言)开发环境
  6. 暴力裁员绝症员工,网易刚刚道歉!丁磊沉默,刘强东意外刷屏:说了这句硬气的话……
  7. 近日总结3.17-3.19(windows server)
  8. 看php网站论文的感想,阅读学术论文心得体会
  9. altium 交叉线_关于各个设备,用直通线还是交叉线连接的详解
  10. RK3399平台开发系列讲解(USB网卡)5.48、USBNET的CDC link on/off 消息
  11. ps -ef|grep 命令解释
  12. “搬砖”机器人两天盖一栋房?泥瓦匠表示很心累
  13. 解决No “rule to make target `../skin_test.qss', needed by `debug/qrc_resource.cpp'. Stop.”
  14. [JZOJ6355] 【NOIP2019模拟】普 24/100
  15. 协作通信关键技术(王辉)阅读心得
  16. 开源企业开发平台教程干货:在O2OA中使用网络会议(二)
  17. vue+mintui+picker弹框选择器
  18. java编程思想--概述
  19. 数据库学习——基础概念
  20. 微信小程序生成海报可保存海报和分享海报

热门文章

  1. 小白买电脑看哪些配置?
  2. 小叮咚机器人,决策树,IAsk , 猜猜20问 (http://y.20q.net/anon)
  3. 激战2怎么选最新的服务器,激战2怎么换服务器
  4. python10分钟处理表格_使用python对excel表格处理的一些小功能
  5. 《复仇者联盟2:奥创纪元》720高清迅雷下载
  6. 缩短NC6服务启动的时间
  7. 计算机第三课细心小编辑教案,五年级信息技术《文字编辑》教案
  8. 代码随想录算法训练营第三十天| 第七章 回溯算法:332.重新安排行程,51.N皇后,37.解数独(python)
  9. 怎么用笔记本电脑显示服务器,通过笔记本电脑如何对SUN T5120服务器进行单机调试,如配置IP地址?...
  10. 糟糕老板6个最坏的管理方式