有向/无向图的基本性质和操作

算法之图:无向图的基础概念与应用 在编程学习的道路上,算法是极为关键的部分,它是解决各种复杂问题的核心工具,也是提升编程能力的重要途径。我在学习算法的过程中,遇到过不少难题,也积累了许多宝贵经验。深知独自面对算法知识时的迷茫,所以希望通过这篇博客,能与大家一起深入学习算法知识,在交流分享中共同进步,让更多人领略算法的魅力,提升编程技能。 阅读详情

1. LeetCode上很多算法题目都可以抽象成 “图” ,比如搜索类,tree类,迷宫问题,矩阵path问题等。

2. BFS和DFS比较

DFS 和 BFS 的比较
  • BFS 的time, space占用都以 branching factor为底, 到解的距离d为指数增长;空间占用上 Queue 是不会像 DFS 一样只存一条path的,而是从起点出发越扩越大,因此会有空间不够的风险,空间占用为 O(b^d)。
  • 因此BFS时间占用O(b^d), 空间占用O(b^d)
  • DFS 的time占用以 branching factor 为底,树的深度 D 为指数增长;而空间占用上,却只是 O(bD),可视化探索过程中只把每个 Node 的所有子节点存在 Stack 上, 探索完了再 pop 出来接着探,因此储存的节点数为 O(bD)。
  • 因此DFS时间占用O(b^D), 空间占用O(bD)

可以看到无论是 BFS 还是 DFS,树的 branching factor 都是对空间与时间复杂度影响最大的参数;除此之外,BFS 中最重要的是到解的距离,而 DFS 看从当前节点的深度。普遍来讲,DFS 空间上会经济一些,当然也要分情况讨论。

拓扑排序,是有向图 graph 搜索中一种特殊的顺序,本质上还是完全可以靠 BFS / DFS 解决。

+


【机器学习】 概率无向图模型 【概率图模型】 概率图模型是一种用图结构来描述多元随机变量之间条件独立关系的概率模型,简称图模型(GM)。图中每个节点表示一个随机变量或一组随机变量,节点之间的边表示这些变量之间的概率关系。 概率图模型分为: 有向图模型:使用有向无环图表示变量间的关系 无向图模型:使用无向图表示变量间的关系 【概率无向图模型】 概率无向图模型满足以下几个性质: 【因子分解】 团:无向图G中任何两个结点均... 阅读详情

相关推荐

数据结构第六章(二)-图的存储及基本操作

就是用矩阵来表示图,其中图的顶点有几个就是有几行几列,所以这是个方阵。那矩阵里面的值是什么呢?如果它没有权,那就用1、0表示有没有边,还是得看图,比如下面这个图,第一行第二列是1,就代表A到B有边,无向图A到B有边说明B到A也有边,所以第二行第一列也是1(所以无向图的邻接矩阵是个对称矩阵),有向图就不是,比如有向图的邻接矩阵第二行第一列就不是1,表示B到A是没边的。现在我们知道了邻接矩阵大概是怎么个意思,就是把图的顶点和边存储起来用矩阵来表示,那么我们的数据结构是什么样的呢?100//顶点数目的最大值。

weixin_45270383的博客 1234

搜索问题的分类及解决方案

Branching factor: 每个节点的子节点数。

qq_46130027的博客 597

并查集(Find-Union)解决无向图连通数量问题

并查集(Find-Union)解决无向图连通数量问题

weixin_41744192的博客 1250

什么是无向图

无向图: 边没有方向的图称为无向图 无向图G=<V,E>其中: 1、V是非空集合,称为顶点集。 2、E是V中元素构成的无序二元组的集合,称为边集 (1)无向边的表示 无向图中的边均是顶点的无序对,无序对通常用圆括号表示。 『例如』无序对(vi,vj)和(vj,vi)表示同一条边 (2)无向图的表示 「例」 图中 V(G2)={v1,v2,v3,v4} E(G2)={(vl,v2),(v1,v3),(v1,v4),(v2,v3),(v2,v4),(v3,v4)} V(G3)={v1,v2,v3.

WH_Crx的博客 6227

C++实现无向图构建与遍历技术教程

无向图是图论中最基础的数据结构之一,它由一系列顶点和连接这些顶点的边组成。理解无向图,是学习更高级数据结构和算法的关键。本文将介绍无向图的基本概念和特性,为后续的深入学习打下坚实的基础。无向图可以定义为一个二元组G(V,E),其中V是顶点集合,E是边集合。每条边都是两个顶点的无序对,表示顶点间的连接关系,并且不具有方向性。在无向图中,邻接矩阵是一个n x n的矩阵,其中n是图中顶点的数量。矩阵中的每个元素A[i][j]表示顶点i和顶点j之间的边的存在性。如果顶点i和顶点。

weixin_35433448的博客 1009

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 653

C语言----实现有向图/无向图的创建与基本操作(深度、广度优先遍历)

以邻接矩阵作为存储结构实现图的创建与基本操作: typedef int Status; typedef int VRType; typedef char InfoType; typedef char VertexType; /*①图的邻接矩阵存储结构定义*/ typedef struct ArcCell { //VRType是顶点的关系类型,对无权图用1或0表示是否相邻

DX奥特曼的博客 1万+

从零理解Brep:用Python玩转3D建模的边界表示法(附OpenCASCADE示例)

本文深入解析了边界表示法(Brep)在3D建模中的应用,通过Python和OpenCASCADE的实战示例,详细介绍了Brep的核心数据结构、布尔运算、网格转换及3D打印优化技巧。适合CAD设计、3D打印和计算机图形学领域的开发者学习与实践。

n4o5p6q7r的博客 429

图的基本概念和性质

图的基本概念

☆下山☆的博客 2576

深度学习【46】pix2pixHD

英伟达的pix2pixHD,能够合成高清的2048*1024图片,简直振奋人心。pix2pixHD是我之前介绍过的pix2pix的改进版本,使用多由粗到精的G网络和多尺度D网络(每个D网络都是用了pix2pix中同样的patch技术)。论文一开始用pix2pix尝试合成更高分辨率的图片,但发现效果不好,训练也很不稳定。所以就对pix2pix进行了一顿魔改。我们来看看他们是怎么改进的。由粗到精的G网络

DCD_LIN的博客 1万+

二维紧束缚模型求解程序

假如我们已经推导出了二维紧束缚模型的哈密顿量矩阵H(kx,ky)的解析形式,那么在整个布里渊区对角化矩阵就可以得到能带。从技术上说这里面有以下几个问题。 1. 缺少实空间和倒空间的坐标,使得能带难以和布里渊区高对称点对应。 2. 最容易处理的布里渊区是矩形,对于其他多边形,如果全布里渊区mesh画费米面有一定技术困难。 因此一个好的处理框架是首先给出实空间原子坐标,给出实空间哈密顿量,...

wwxy1995的博客 4083

图的定义与性质

图的定义与性质1 定义2 基本术语3 类型 1 定义 图 (Graph) 是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。 图论 (Graph theory) 是数学的一个分支,图是图论的主要研究对象。 表达式:G=(V, E) V:顶点(数据元素)的有穷非空集合。 E:边的有穷集合。 Graph = (Vertex, Edge) 2 基本术语 1、无向图:顶点之间相连的线我们称为边,每条边都是

zhu_liucheng的博客 3901

避坑指南:ZYNQ平台上AXI 1G/2.5G Ethernet Subsystem实现IEEE1588的5个关键点

本文详细解析了在ZYNQ平台上使用AXI 1G/2.5G以太网子系统实现IEEE1588精密时间协议(PTP)的5个关键避坑点。从硬件选型、Vivado工程配置到Linux驱动适配,提供了实战经验与优化技巧,帮助工程师在工业自动化、电力系统等场景中实现纳秒级时间同步。

weixin_30687051的博客 237

图论基础:从数学原理到C/C++实现

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 612

Vue集成飞书前端JSSDK

文章目录前言<1>飞书前端JSSDK<2>使用步骤1.将JSSDK引入到VUE2.读入数据总结 前言 公司需要使用飞书软件,所以转战飞书开发,也是对新知识的探索与研究,飞书SDK也一直都在更新,路虽远,行必达。 <1>飞书前端JSSDK 1、官网地址:https://open.feishu.cn/document/uYjL24iN/uITO4IjLykDOy4iM5gjM 2、当前使用的飞书前端JSSDk的版本:1.5.4 <!-- 在html文档中 --&gt

A 1万+

电子电器架构刷写方案——General Flash Bootloader

### 文章大体有如下内容: ### 1、简介 ### 2、刷写系统概述 ### 3、Flash Bootloader刷写流程 ### 4、Flash Bootloader架构介绍 ### 5、关于刷写的思考

Soly_kun的博客 2213

无向图中两点之间的距离_无向图基础

无向图是一种最简单的图模型,在这种图模型中,边仅仅是两个顶点之间的连接。我们用v-w的记法表示连接v和w的边,而w-v是这条边的另一种表示方法。特殊的图。自环:即一条连接一个顶点和其自身的边;连接同一对顶点的两条边称为平行边。简单术语介绍当两个顶点通过一条边相连时,我们称这两个顶点是相邻的,并称这条边依附于这两个顶点。某个顶点的度数即为依附于它的边的总数。子图是由一幅图的所有边的一个子集(以及它们...

weixin_39530647的博客 1717

【Qt开发】管理OpenGL上下文QOpenGLContext类及应用实践示例代码

QOpenGLContext 提供了一个简单、高效的接口来管理 OpenGL 上下文。本文详细介绍了 QOpenGLContext 的基本功能、常用方法、信号槽机制、高级应用技巧及常见问题的解决方法。通过这些介绍,读者可以更好地掌握和利用 QOpenGLContext 进行 OpenGL 渲染和管理实验。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。

科技改变人类,技术成就未来 1875

求无向图最小割

无向图最小割stoer-wagner算法的详细说明和AC模板

谁见过风 5585

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【C/C++ 数据结构 】无向图和有向图的差异

【C/C++ 数据结构 】无向图和有向图的差异

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1768

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数据结构期末复习-图的相关概念和基本性质

文章目录定义和术语图有向图/无向图完全图稀疏图稠密图网邻接关联(依附)顶点的度路径路径长度回路(环)简单路径简单回路(简单环)连通图(强连通图)权与网子图连通分量(强连通分量)基本性质图的抽象类型定义基本操作顺序存储结构(数组(邻接矩阵)表示法)无向图的邻接矩阵表示法有向图的邻接矩阵表示法网(有权图)的邻接矩阵表示法邻接矩阵表示法的特点优点缺点链式存储结构邻接表(链式)表示法无向图的邻接表表示有向图的邻接表表示邻接表表示法的特点优点缺点邻接矩阵与邻接表表示法的关系 先回顾下逻辑结构 图是逻辑结构中最复杂的

博客地址 www.sec0nd.top 1180

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

获得无向图连通子图_无向图基础

无向图是一种最简单的图模型,在这种图模型中,边仅仅是两个顶点之间的连接。我们用v-w的记法表示连接v和w的边,而w-v是这条边的另一种表示方法。特殊的图。自环:即一条连接一个顶点和其自身的边;连接同一对顶点的两条边称为平行边。简单术语介绍当两个顶点通过一条边相连时,我们称这两个顶点是相邻的,并称这条边依附于这两个顶点。某个顶点的度数即为依附于它的边的总数。子图是由一幅图的所有边的一个子集(以及它们...

weixin_34532234的博客 957

数据结构——图(二、图的存储和基本操作)

本文介绍了图的四种存储结构:邻接矩阵、邻接表、十字链表和邻接多重表。邻接矩阵通过二维数组存储边信息,空间复杂度O(|V|²),适合稠密图;邻接表采用链式存储,空间复杂度O(|V|+|E|),适合稀疏图。十字链表和邻接多重表分别优化了有向图和无向图的存储。文章详细分析了各结构的特点、存储实现及基本操作(如增删顶点/边、查找邻接点等)的时间复杂度,并对比了四种方式的适用场景和优缺点,为图算法的存储选择提供了参考依据。

m0_65656149的博客 1855

拉普拉斯矩阵的性质

图和拉普拉斯矩阵 解释:可以看到,上面的图是无向图,所以其对应的邻接矩阵是对称矩阵,表示如果顶点1和顶点3有边,那么3到顶点1也有边,但是注意对于有向图就未必,因为可能顶点1指向顶点3,顶点3却没有指向顶点1,这个时候顶点3到顶点1是没有边的。 解释:度矩阵应该很好理解,即一共有多少条边与该顶点有关,然后把这个数写在方阵的对角线上。 可以看到,拉普拉斯矩阵还是对称矩阵。 上面是连通图的例子,我们举一个不是连通图的例子。 邻接矩阵为: 度矩阵为: 由此可得拉普拉斯矩阵为: 注:我画方框是因为每

qq_43391414的博客 2万+

java 数据结构 无向图_数据结构-图-无向图

无向图一、无向图的说明1. 稀疏图:有很少边或弧的图;2. 稠密图:有较多边或弧的图;3. 网:边/弧带权值的图;4. 邻接:有边/弧相连的两个顶点之间的关系。存在(Vi,Vj),则称Vi和Vj互为邻接点;5. 关联(依附):边/弧与顶点之间的关系。存在(Vi,Vj)/,则称该边/弧关联于Vi和Vj;6. 顶点的度:与该顶点相关联的边的数目,记为TD(v);7. 路径:连续的边构成的顶点序列;8....

weixin_42717586的博客 495

无向图的连通性

先明白一些概念。 割点:若一个点删除后(也就是与之相连的边统统去掉),无向图不再连通,那么此点称为割点。 桥:若一条边断去后,无向图不再连通,那么此边称为桥。桥有一个很好的性质,就是DFS一个无向图,那么这个过程必定要经过桥。 块:没有割点的无向图称为2-连通分支,也称作块。 割点、桥均可以在DFS的过程中求得。 那么,对于一个无向图有以下操作: 1.将一个无向图的块缩成一个点。这个时

Airarts_的专栏 2425
下一篇: 拓扑排序DFS做法
michaelbinwang
博客等级 码龄10年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值