比较DFS和BFS的优点和缺点及名称词汇

news/2024/7/6 6:30:29

dfs和bfs用邻接表和邻接矩阵存储图,时间复杂度为O(N E)和O(N2),若遍历整个图,空间复杂度均为O(N) 如果已经知道解离根节点比较近,那么BFS更好 如果整体上每个节点的边很多,那么BFS消耗的内存会很大 如果一棵树很深而解很少,那么DFS可能会很慢(相反如果解很多并且都比较深的话,那么BFS就会很慢) 如果一个问题深度无穷而广度有限,那么DFS就没法获得解,但BFS可以,反之也同理

一,连通:连通指的是从顶点V到W有一条无向路径,则称V和W是连通的。

二,连通分量:无向图的极大连通子图。
连通分量的两个特点
1.极大顶点数:在当前图中再加一个就不再连通了。
2.极大边数:包含子图中所有顶点相连的所有边。(所有顶点的包含的所有边都在)

三,回路
起点等于终点的路径。

四,连通图
图中所有顶点均是连通的。

五,强连通、弱连通
在有向图中顶点V和W间存在双向路径,则称V和W是强连通的。

六,强连通图
有向图中任意量顶点均强连通

七,强连通分量
有向图的极大强连通图

每次调用一次DFS(x)/BFS(x)都是把x所在的连通分量遍历一遍。那么若是一个图不为连通图怎么办,我们将所有未访问过的点都进行一次需要的DFS(x)/BFS(x),就可以对图的所有点进行遍历。

注意时间复杂度,若有N个顶点E条边。邻接表存储图的时间复杂度是O(N+E),邻接矩阵的时间复杂度为O(N²);
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://www.niftyadmin.cn/n/3075836.html

相关文章

[OOD-More C++ Idioms] 内部类 (Inner Class)

内部类 (Inner Class) 目的 不用通过多重继承就可以实现多套接口,同时可以自然地向上转换(Up-casting)。在单个抽象下提供相同接口的多个实现。别名 动机 两个独立类库通过不同的接口提供的虚函数签名可能冲突,如果这时需要同时实现这两个函数就会出现问题。示例如下…

最近使用git的错误----“failed to push some refs to ...”与“On branch master Your branch is up to date with ‘”

第一种错误 使用命令 git push origin master 报如下错误: failed to push some refs to … 这是因为你往git上已经推送了一部分代码或文件夹,你删掉了其中的一部分,再次推时就会出现这种不允许把本地代码覆盖上去的情况。这个时候你有两种…

【从翻译mos文章】rac数据库,HC_lt;SIDgt;.dat其他文件Oracle_Home用例下。

rac数据库。HC_<SID>.dat其他文件Oracle_Home用例下。参考原始&#xff1a;RAC database HC_<SID>.dat is used by instance of different Oracle_Home (Doc ID 1618161.1)适用于&#xff1a;Oracle Database - Enterprise Edition - Version 11.2.0.0 and laterIn…

基于内容的图像检索系统设计与实现--颜色信息--纹理信息--形状信息--PHASH--SHFT特征点的综合检测项目,包含简易版与完整版的源码及数据!

百度云提取源码以及数据包&#xff0c;直接下载压缩包解压就可以使用&#xff0c;数据就在压缩包文件dataset中。 简化版&#xff1a;只有-颜色信息–纹理信息–形状信息–PHASH–SHFT特征点的综合检测 [百度云链接&#xff0c;提取码&#xff1a;6666] 戳我 完整版&#xff1…

学习笔记,奇安信笔试题第二题输入问题:[1,2,3,4,5,6]。以及读入时不知道数量输入回车结束的问题,如“1 2 3 4 5 6”回车结束。

之前做题遇到一些输入的问题&#xff0c;平时我们写代码的时候大多数时候是知道输入数据的个数&#xff0c;所以我们在循环读入的时候可以设置结束条件&#xff0c;但是会遇到随机个数的输入&#xff0c;这里做一下学习记录。 #include<iostream> #include<vector>…

Oracle添加数据文件创建表空间,创建用户代码

1,添加数据文件创建表空间 1 CREATE TABLESPACE "TEST1" DATAFILE D:\ORACLE\11G\ORADATA\ORCL\TEST1.DBF SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO 部署时需要根据需要改动部分: TABL…

Spring线程池开发实战及使用spring注解

2019独角兽企业重金招聘Python工程师标准>>> 本文提供了三个Spring多线程开发的例子&#xff0c;由浅入深&#xff0c;由于例子一目了然&#xff0c;所以并未做过多的解释。诸位一看便知。 前提条件&#xff1a; 1&#xff09;在Eclipse创建一个Java项目&#xff0c…

SQL Server 存储过程解析XML传参 参考方案

1、定义存储过程 -- --定义存储过程-- CREATE PROCEDURE [dbo].[UpdateT] -定义xml参数 xml xmlASBEGINSET NOCOUNT ON; DECLARE xmlHandle int --输出参数 EXEC sp_xml_preparedocument xmlHandle OUTPUT, xml SELECT MID,MName,MSex into #tmp FROM OPENXML (xmlHandle, /Ro…