保研复习数据结构-图(10)

news2024/11/16 17:43:45

一.图的定义和基本术语

1.什么是图?

图(Graph)是由顶点的有穷非空集合V(G)和顶点之间边的集合E(G)组成,通常表示为:G=(V,E),其中,G表示图,V是图G中顶点的集合,E是图G中边的集合。

2.什么是完全图(Completed graph)?

对于有n个顶点的无向图,边e的数目为 0 ~ n(n-1)/2,对于无向完全图,共有n(n-1)/2条边。对于有向图,边的数目是0 ~ n(n-1),有向完全图的边数为n(n-1)。有很少条边或弧的图称为稀疏图(Sparse graph),反之称为稠密图(Dense graph)。

3.什么是网(Network)?

带权的图,权是指边或弧上带有相应的数字。

4.什么是子图(Subgraph)?

图的顶点集的子集and图的边集的子集

5.一个图的所有顶点的度数的和的一半等于边数:

e=\frac{1}{2}\Sigma ^n_{i=1}ID(v_i)

6.什么是图中的回路或环(Cycle)?

第一个顶点和最后一个顶点相同的路径称为回路或者环。

7.什么是连通图(Connected Graph)?

如果对于图中任意两个顶点Vi和Vj都有路径,那么说明这个图是连通图。

8.什么是连通分量(Connected component)?

指的是无向图中的极大连通子图=子图and连通图

9.什么是强连通图?什么是强连通子图?

对于有向图中的连通图,和有向图中的连通分量。

10.什么是生成树(Spanning Tree)?

生成树是一个连通图的极小连通子图,它包含树所需的全部顶点。顶点数为n的生成树一定含有n-1条边。如果一个含有n个顶点的图的边数小于n-1,那么这个图一定是非连通图;如果边数大于n-1,那么一定包含环。

11.什么是生成森林?

对应于非连通图,是由多个生成树组成的包含图中所顶点的森林。

二.最小生成树(Minimum Cost Spanning Tree)

1.什么是最小生成树?

所有边代价和最小的生成树称为最小生成树

2.Prim算法和Kruskal算法利用的是最小生成树的什么性质?

MST性质:假设N=(V , { E })是一个连通网,如果U是顶点集V的一个非空子集,如果存在一条权重(代价)最小的边(u,v)使得u \in U, v \in V-U,那么必然存在一棵包含(u,v)的最小生成树。

3.Prim算法是什么?

Prim算法基于贪心对于连通加权无向图来选择最小生成树的算法,每次选出一条距离已有最小生成树最短的边加入到集合中,最终实现最小生成树

具体流程:

  1. 用两个集合A{}和集合B{}分别表示找到的点集和未找到的点集。
  2. 对于元素a属于A,元素b属于B,选择一条最小的边(a,b)加入最小生成树
  3. 直到A=V,B为空

4.Kruskal算法是什么?

Prim算法是基于点,Kruskal算法是基于边。

先将边从小到大排列,从小到大添加不构成环路的边,由于要排序,所以复杂度为O(nlogn)

  1. 将边按照权重从小到大排列
  2. 枚举第一个边,加入MST里,判断是否成环
  3. 如果成环则跳过,否则确定这条边为MST里的
  4. 继续枚举下一条边,直到所有的边都枚举完

三.拓扑排序(Topological Sort)

1.什么是拓扑排序?

针对于有向无环图,只有有向无环图才存在拓扑排序。拓扑排序是针对有向无环图的拓扑序列,这个序列满足:(1)每个顶点出现且仅出现一次(2)如果存在一条从A到B的路径,那么A一定在B的前面

2.拓扑排序的过程?

  1. 选择一个没有前驱(入度为0)的顶点
  2. 删除这个顶点和所有以它为起点的边
  3. 重复操作12,直到整个图为空或者剩余结点,后一种状况说明图存在环路。

四.关键路径(Critical Path)

1.什么是关键路径?

关键路径是针对于AOE(Activity on edge)来说的,AOE中边表示活动,权重表示活动持续的时间,顶点表示事件。所有有最早开始时间和最晚开始时间相同的事件组成的路径为关键路径。

2.关键路径的求解步骤?

  1. 绘制项目网络图,标志个活动的持续时间和活动之间的逻辑关系。
  2. 计算每个活动的最早开始时间(ES)和最晚开始时间(LS),以及最早完成时间(EF)和最晚完成时间(LF) 。
  3. 计算每个活动的浮动时间,即LS-ES或LF-EF。
  4. 找出浮动时间为零的活动,这些活动所构成的路径就是关键路径。

五.最短路径(Minimum Path)

1.迪杰斯特拉算法(单源最短路径)

  1. 从所有未访问的点中,找出当前距离最小的,设为u,并将其标记为已访问的。
  2. 调整u的所有边(若是有向图则为出边)连接的并且未被访问过的点:若weight[u->v] + dist[u] < dist[v], 则将dist[v]更新为dist[u]+weight[u->v]。
  3. 重复1和2步骤,直到所有点都被标记为已访问的,则dist[i]即s到i的最短距离。如果只想求从s到某一点的最短距离,那么当该点被标记为访问过之后可直接退出。
  4. 补充:如果除了最短距离之外还想求出具体的路径,只需建立一个pre数组,在步骤2后添加操作:pre[v] = u(前提是dist[v]被更新)。

2.弗洛伊德算法(多源最短路径)

弗洛伊德算法可以给出图中任意两个结点之间的最短路径,比迪杰斯特拉更一般。

Foyd算法的思想是将n个节点的网络表示为n行n列的矩阵,而矩阵中的元素(i,j)表示从节点i到节点j的距离d_{ij},如果两点直接没有边相连,则相应的元素就是无穷(\infty).

  1. 邻接矩阵dist储存路径,同时最终状态代表点点的最短路径。如果没有直接相连的两点那么默认为一个很大的值(不要溢出)!而自己的长度为0.
  2. 第1个到第n个点依次加入图中。每个点加入进行试探是否有路径长度被更改。
  3. 而上述试探具体方法为遍历图中每一个点(i,j双重循环),判断每一个点对距离是否因为加入的点而发生最小距离变化。如果发生改变,那么两点(i,j)距离就更改。
  4. 重复上述直到最后插点试探完成。

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

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

相关文章

【第十二篇】使用BurpSuite实现CSRF(实战案例)

CSRF存在前提:简单的身份验证只能保证请求是发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的 业务场景:新增、删除、收藏、编辑、保存使用Burp发现CSRF漏洞的过程如下。 1、如图,存在修改邮箱的功能点如下: 2、修改邮箱的流量包,此时邮箱已被修改: 思路:是…

12、最小覆盖子串

如何想到这个解法 问题的特点&#xff1a; 首先&#xff0c;认识到这是一个关于子串的问题&#xff0c;而且需要考虑子串的最小长度。这提示我们可能需要使用一种方式来逐步探索不同的子串。滑动窗口的适用性&#xff1a;滑动窗口是处理子串问题的常用技巧&#xff0c;特别是当…

X年后,ChatGPT会替代底层程序员吗?

能不能替代&#xff0c;真的很难说&#xff0c;因为机器换掉人&#xff0c;这其实是一个伦理问题。 其实说白了&#xff0c;任何行业在未来都会被AI或多或少的冲击到&#xff0c;因为ChatGPT做为一个可以持续提升智能的AI&#xff0c;在某些方面的智能程度超过人类并不是什么难…

笛卡尔树[天梯赛二叉树专项训练]

文章目录 题目描述思路AC代码 题目描述 输入样例1 6 8 27 5 1 9 40 -1 -1 10 20 0 3 12 21 -1 4 15 22 -1 -1 5 35 -1 -1 输出样例1 YES 输入样例2 6 8 27 5 1 9 40 -1 -1 10 20 0 3 12 11 -1 4 15 22 -1 -1 50 35 -1 -1 输出样例2 NO思路 见注释 AC代码 #include <bits/st…

5. 4 二重循环将二维数组的某列、某矩形转大写

5. 4 二重循环将二维数组的某列、某矩形转大写 1. 把每一行的b都变成大写 assume cs:codesg,ds:data,ss:stack data segmeNTstr db aaaaabbbbbcccccdb aaaaabbbbbcccccdb aaaaabbbbbcccccdb aaaaabbbbbccccc,$ data endsstack segmentdb 10 dup(0) stack endscodesg SEgments…

【Vue】Vue3中的OptionsAPI与CompositionAPI

文章目录 OptionsAPICompositionAPI对比总结 OptionsAPI 中文名:选项式API通过定义methods,computed,watch,data等属性方法&#xff0c;处理页面逻辑。以下是OptionsAPI代码结构 实例代码: <script lang"ts">// js或者tsimport { defineComponent } from vu…

豆瓣9.7,这部Java神作第3版重磅上市!

Java 程序员们开年就有重磅好消息&#xff0c;《Effective Java 中文版&#xff08;原书第 3 版&#xff09;》要上市啦&#xff01; 该书的第1版出版于 2001 年&#xff0c;当时就在业界流传开来&#xff0c;受到广泛赞誉。时至今日&#xff0c;已热销近20年&#xff0c;本书…

React - 连连看小游戏

简介 小时候经常玩连连看小游戏。在游戏中&#xff0c;当找到2个相同的元素就可以消除元素。 本文会借助react实现连连看小游戏。 实现效果 实现难点 1.item 生成 1. 每一个图片都是一个item&#xff0c;items数组的大小为size*size。 item对象包括grid布局的位置&#xff0c;…

UE小:UE5.3无法创建C++工程

当您在使用Unreal Engine (UE) 构建项目时&#xff0c;如果遇到以下问题&#xff1a; Running C:/Program Files/Epic Games/UE\_5.3/Engine/Build/BatchFiles/Build.bat -projectfiles -project"C:/UEProject/Shp\_1/Shp\_1.uproject" -game -rocket -progress Usi…

网络基础三——初识IP协议

网络基础三 ​ 数据通过应用层、传输层将数据传输到了网络层&#xff1b; ​ 传输层协议&#xff0c;如&#xff1a;TCP协议提供可靠性策略或者高效性策略&#xff0c;UDP提供实时性策略&#xff0c;保证向下层交付的数据是符合要求的的&#xff1b;而网络层&#xff0c;如&a…

websokcet服务端实现

一/websokcet服务端实现 步骤一&#xff1a; springboot底层帮我们自动配置了websokcet&#xff0c;引入maven依赖 1 2 3 4 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</arti…

分享10个免费高可用的GPT3.5和4.0网站并做功能测试【第一个】

1.介绍 网址&#xff1a;直接点&#xff1a;aicnn 或者 www.aicnn.cn 基于ChatGPT可以实现智能聊天、绘画生成、高清文本转语音、论文润色等多种功能&#xff0c;基于sd和mj实现的绘画功能&#xff0c;下面是功能测试&#xff1a; 博主从 1.GPT3.5是否完全免费/是否限制频率、…

基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的基于个人需求和地域特色的外卖推荐系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

作为一个前端,在入职新公司如何快速安装好开发环境

由于电脑运行内存才16G有点卡&#xff0c;今天公司给我们换了32G内存&#xff0c;是直接整个主机都换了&#xff0c;环境自然得重新安装&#xff0c;在装的过程中&#xff0c;自己会有些心得体会&#xff0c;就是想着一个新人如何快速安装环境。 个人说一下我的思路&#xff1a…

SPI接口原理以及读写接口用例的详细介绍

一&#xff0c;spi接口原理 SPI接口&#xff0c;即串行外设接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种同步串行数据传输协议。它主要用于连接微处理器和各种外设&#xff0c;如存储器、传感器、ADC&#xff08;模数转换器&#xff09;和DAC&…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之②:数据治理之二(自动处理)

前述 在前文的multi Agents for Data Analysis的设计说起&#xff0c;本文将继续探索和测试借助llm实现基于私有知识库的数据治理全自动化及智能化。整体设计如下&#xff1a; 整个体系设计了3个Agent以及一个Planer&Execute Agent&#xff0c;第一个Agent用于从企业数据…

蓝桥杯真题代码记录(数位排序

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。 例如, 2022 排在 40…

这个开发板在线仿真网站你一定不能错过

大家好&#xff0c;我是知微&#xff01; 今天给大家推荐一个免费的在线的开发板仿真网站&#xff0c;你可以使用它来仿真Arduino、ESP32和许多其他流行的电路板、元器件以及传感器&#xff0c;免去初期需要购买开发才能学习的困扰。 它就是Wokwi&#xff0c;网址如下 https:…

10个程序员可以接私活的平台和一些建议

话不多说&#xff0c;直接进入正题。我把我压箱底的10个程序员接私活的平台都拿出来了&#xff0c;看之前记得先点赞收藏~ 码市 互联网网站外包服务平台&#xff0c;这个平台上还有产品原型可供参考。在码市上有一系列规范的接单和发单流程答疑过程&#xff0c;可以很好地帮助…

YouTube首席执行官指控OpenAI违反服务条款:AI训练数据伦理之争加剧

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…