【期末复习】例题说明Prim算法与Kruskal算法

news2024/11/15 10:19:48

点睛

Prim与Kruskal算法是用来求图的最小生成树的算法。最小生成树有n个顶点,n-1条边,不能有回路。

Prim算法

Prim算法的特点是从个体到整体,随机选定一个顶点为起始点出发,然后找它的权值最小的边对应的另一个顶点,这两个顶点就构成了新的个体(连通图),然后在这两个顶点的所有边中找权值最小的边对应的另一个顶点(前提是加进来不能导致已有的顶点所在的连通图构成回路),就这样直到所有顶点都并入同一个连通图,算法结束。

例1利用Prim算法求下图的一棵最小生成树,设顶点1为起始点,写出求解过程。

答案:

  1. 找到顶点1权值最小的边(1,3),则顶点1和3构成新的连通图

  1. 找到顶点1和3中权值最小的边(3,4),则顶点1,3,4构成新的连通图

  1. 找到顶点1,3,4中权值最小的边(4,7),则顶点1,3,4,7构成新的连通图

  1. 找到顶点1,3,4,7中权值最小的边(7,8),则顶点1,3,4,7,8构成新的连通图

  1. 找到顶点1,3,4,7,8中权值最小的边(8,6),则顶点1,3,4,7,8,6构成新的连通图

  1. 找到顶点1,3,4,7,8中权值最小的边(8,5),则顶点1,3,4,7,8,6,5构成新的连通图

  1. 找到顶点1,3,4,7,8,5中权值最小的边(1,2),则顶点1,3,4,7,8,6,5,2构成新的连通图

  1. 至此Prim算法结束,找到最小生成树如下图

Kruskal算法

Kruskal算法的特点是从整体到个体,它把整个图(默认是无向连通图)看做n个独立的顶点,然后把图的所有带权边根据权值大小升序排列存入一个序列中。最后依次从序列中取出这些边加入n个独立的顶点使它们成为同一个连通图的一部分,只要取出的边的数量不到n-1就一直取。在取的过程中如果有一条边的加入会造成回路,则跳过选下一个权值稍大的边。

例2利用Kruskal算法求下图的一棵最小生成树,写出求解过程。

答案:

  1. 将图中所有的边按照权值大小升序排列存入集合中,结果如下:

{(1,2), (1,3), (1,4), (2,5), (2,6), (3,4, (3,7), (4, 5), (4,7), (5,6), (5, 8), (6,8), (7,8)}

  1. 从集合中取出边(1,2),顶点1和2构成一个新的连通图

  1. 从集合中取出边(1,3),顶点1,2,3构成一个新的连通图

  1. 从集合中取出边(1,4),顶点1,2,3,4构成一个新的连通图

  1. 从集合中取出边(2,5),顶点1,2,3,4,5构成一个新的连通图

  1. 从集合中取出边(2,6),顶点1,2,3,4,5,6构成一个新的连通图

  1. 从集合中取出边(3,4),会在顶点1,3,4之间构成回路跳过

  1. 从集合中取出边(3,7),顶点1,2,3,4,5,6,7构成一个新的连通图

  1. 从集合中取出边(4,5),会在顶点1,2,4,5构成回路,跳过

  1. 从集合中取出边(4,7),顶点1,3,4,7构成回路,跳过

  1. 从集合中取出边(5,6),顶点2,5,6构成回路,跳过

  1. 从集合中取出边(5,8),顶点1,2,3,4,5,6,7,8构成一个新的连通图

  1. 边的个数达到n-1,结束,最小生成树如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IEEE学生会员注册

IEEE学生会员注册0、引言IEEE 会员介绍1、IEEE学生会员会费2、加入学生会员2.1、创建/登录 IEEE 账户2.2、填写/维护 个人基本信息2.3、填写/维护 基本教育信息3、选择一个你将要加入的协会或社团4、确认购物车5、付款5.1、付款详情信息页5.2、扫码付款并验证5.3、会员确认邮件…

【前端提效】-- VsCode 实用插件推荐

EditorConfig for VS Code ***** 作用:多人协同开发,规范缩进风格,缩进大小,tab长度以及字符集等,解决不同IDE的编码范设置,在这里配置(.editorconfig)的代码规范规则优先级高于编辑…

Object.defineproperty方法

Object.defineproperty 的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性Object.defineproperty可以接收三个参数Object.defineproperty(obj, prop, desc)obj : 第一个参数就是要在哪个对象身上添加或者修改属性prop : 第二个参数就是添加或修…

Ansys Zemax | 如何在存在全内反射 (TIR) 的情况下应用散射

在本文中,我们将展示如何利用虚拟表面来对具有全内反射 (TIR) 的物体进行建模,同时保持其他独特的表面特性,例如粗糙的表面结构。 下载 联系工作人员获取附件 简介 在OpticStudio中,全内反射 (TIR) 在其他表面属性&#xff08…

计网物理层

第一章:物理层 1、物理层的主要作用: ①、在不同的传输媒体上传输比特流 ②、屏蔽各种传输媒体的差异,为上层的数据链路层提供服务,使得上层的数据链路层无需考虑传输媒体是什么 2、传输媒体的种类: ①、导引型传…

python环境配置

python环境配置一、ADB环境配置1、ADB下载路径:2、点击下载3、解压并放到本地磁盘4、配置ADB环境变量二、Python环境配置1、Python下载路径:2、点击下载(默认下载最新的)3、解压并放到本地磁盘4、配置Python环境变量5、配置pip环境变量三、Pycharm安装1、pycharm下载路径:2、点…

“数字乡民”疑云:助农?坑农?

1月2日,“深入实施数字乡村发展行动,推动数字化应用场景研发推广”写入了国务院《关于做好2023年全面推进乡村振兴重点工作的意见》中,2022年中央一号文件也要求“大力推进数字乡村建设,推进智慧农业发展”。 在这之前&#xff0…

ArrayList删除元素时导致的java.util.ConcurrentModificationException错误的分析及源码解读

1.前言 集合对于开发者来说都不陌生,可以说是我们日常开发中使用最频繁的对象之一,尤其是ArrayList,可是对于一些开发者并不真正了解它,只是使用习惯了,也就按照集合中基础的一些api使用了,但有时候却因为错…

MacBook IDEA 顶部菜单栏不显示问题

文章目录背景:当前显示方式一1. 快捷键:双击shift 搜索 idea.vmoptions3. 在idea.vmoptions文件末尾添加 -Dapple.laf.useScreenMenuBarfalse方式二1. 访达 > 应用程序 > idea 右键 显示包内容2. 进入到bin包位置的命令终端3. 编辑文件 vi idea.pr…

硬件学习 软件Cadence day05 快速拥有 元件的原理图和PCB 分装 (Ultra Librarian 下载)

1.下载 Ultra Librarian (实测有用) 一个链接: (5条消息) Ultra Librarian 的安装和使用_lian123的博客-CSDN博客_ultra librarian 安装过程简单!!, 一直next 就行. 2.快速寻找 元器件 (…

8个优秀图片素材库,免费/商用/高分辨率。

有深度的摄影照片,总可以让我们深思,从中获取有用的设计灵感。图片素材可以用于很多场景,比如海报背景、封面等等。如何才能找到质量高、免费还可以商用的图片素材呢?别着急,本期我就给大家推荐8个非常牛的图片素材网站…

音视频基础之视频主要概念

视频主要概念 **视频码率:**kb/s,是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。 **视频帧率:**fps,通常说一个视频的25帧&…

查找算法复习

先序在了解查找算法之前,需要熟悉几个概念,不然后面容易产生理解错误。查找表:即被查找的对象,通常由几个关键字组成。关键字:就是数据项、字段的意思。关键字有主次之分,其中主关键字取值是唯一的。查找长…

工程监测多通道振弦模拟信号采集仪VTN的AABB 通讯协议

工程监测多通道振弦模拟信号采集仪VTN的AABB 通讯协议 AABB 通讯协议是一种非标准自定义协议, 相较于 MODBUS 通讯协议,结构更简单,指令生成方法更容易,便于进行快速测试。 AABB 通讯协议支持单寄存器读写两种指令。 &#xff08…

开机一键ghost重装系统如何操作

现在有很多的朋友伙伴们在后台反映自己想尝试一个简单的重装系统方法,现在小编就带着推荐来啦,开机一键ghost重装系统,他简单操作易上手,小白也可以轻松掌握,大家一起来看看吧。 工具/原料: 系统版本&…

NLP文本自动生成介绍及Char-RNN中文文本自动生成训练demo

前言 文本自动生成是自然语言处理领域的一个重要研究方向,实现文本自动生成也是人工智能走向成熟的一个重要标志。文本自动生成技术极具应用前景。 例如,文本自动生成技术可以应用于智能问答与对话、机器翻译等系统,实现更加智能和自然的人机…

云生源安全引流方案(K8S)

背景 在云原生中,我们无法非常方便准确的截取流量。比如在 K8S 中的每个 Pod 都需要和 API Server 进行 health 通讯等,这些并非是我们用户真实发生的流量。所以我们需要把 K8S 中发生的流量和用户发生的流量给分割开来,还有就是 K8S 对于开发者来说是一个黑盒,不知道怎么…

如何写好controller层

前言一、Controller层参数接收二、统一状态码三、统一校验四、统一响应五、统一异常前言本篇主要要介绍的就是controller层的处理,一个完整的后端请求由4部分组成:1. 接口地址(也就是URL地址)、2. 请求方式(一般就是get、set,当然还有put、de…

运行redis报错 由于目标计算机积极拒绝,无法连接

第一打开redis服务器时出现闪退第二再点击redis-cli.exe时,出现了由于目标计算机积极拒绝,无法连接尝试用这个命令解决此问题:打开命令运行窗口,进入cmd,然后进入redis安装的目录,如下图:回车之…

“与众不同”的TOP250详细数据采集,pyecharts世界地图多维可视化展示

“与众不同”的TOP250详细数据采集,pyecharts世界地图多维可视化展示 前言: 本文描述爬取逗瓣250的电影详细信息,包括对电影名、评分、评论人数、电影名言、导演演员信息、电影年份、电影国家、电影类型等详细爬取; 并且针对爬…