在有向图和无向图中,如果节点之间无权值或者权值相等,那么dfs和bfs时常出现在日常算法中。不仅如此,dfs,bfs不仅仅能够解决图论的问题,在其他问题的搜索上也是最基础(但是策略不同)的两种经典算法。
并且五大经典算法的回溯算法其实也是dfs
的一种。dfs,bfs基础能够解决搜索类问题的大部分情况,只不过搜索随着数据增大而呈非线性的增长,所以两种算法在数据较多的情况是不太适用的。
邻接矩阵和邻接表
邻接矩阵:邻接矩阵就是用数组(二维)表示图。具体可以看下面例子。当然,这种情况很容易造成空间浪费,所以很多人进行空间优化,甚至是邻接表的方式。
邻接表:而邻接表则是数组套链表。这样可以比起邻接矩阵节省不少空间,但是如果无向图依然会重复浪费一半空间,就有十字链表,多重链接表等等出现。同时,对于有权图来说,只需对节点加一个属性weight即可!
深度优先搜索(dfs)
概念:
深度优先搜索属于图算法的一种,英文缩写为DFS即DepthFirstSearch.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.
简单的说,要完成dfs要有前提条件.就是有联通点。单个节点dfs就断掉了,他要找打和它联系的节点。dfs入手可能比bfs简单的原因是dfs大部分之间利用递归的走向完成dfs,而很少需要标记。
我们通常使用邻接表(一维数组套链表a[List])或者邻接矩阵(二维数组a[][])储存图的信息。有时为了优化空间会选择十字链表或者邻接多重表进行存储节省空间,但是操作往往是很复杂的。并且一般来说图的更大需要设计算法的优化,所以这里例子使用邻接矩阵完成!
对于dfs的流程来说,大致可以认为是这样:
从初始点开始按照一个方向遍历,这个方向到尽头停止后到另一个方向,,,直到所有操作完成退出!深度优先搜索执行过程像是一个栈的操作。喜新厌旧。总是处理最新加入的节点,这点递归恰好满足其性质,并且递归代码写起来也更简洁。dfs的流程可以参考二叉树的前序遍历,它实质就是一个dfs。对于上图的dfs。可以用一下代码来表示:
package图论;publicclassdfs{staticbooleanisVisit[];publicstaticvoidmain(String[]args){intmap[][]=newint[7][7];isVisit=newboolean[7];map[0][1]=map[1][0]=1;map[0][2]=map[2][0]=1;map[0][3]=map[3][0]=1;map[1][4]=map[4][1]=1;map[1][5]=map[5][1]=1;map[2][6]=map[6][2]=1;map[3][6]=map[6][3]=1;isVisit[0]=true;dfs(0,map);//从0开始遍历}privatestaticvoiddfs(intindex,intmap[][]){//TODOAuto-generatedmethodstubSystem.out.println("访问"+(index+1)+"");for(inti=0;i
相关文章
-
男子指责Google Maps提供错误导航信息 使其掉入河流
这款应用能为用户提供可靠的导航体验,并且它还在不断发展。,然而近日一名男子表示,GoogleMaps提供的错误导航信息使其掉入冰冻河流。,据CBSNMinnesota报道,尽管这名男子只是被部分淹没,但他还是跌入了冰冻的密西西比河。
2024-03-22 08:47 -
Google Maps产品经理解释如何借助AI来帮助预测交通流量
当用户在使用GoogleMaps导航时,Google会汇总可用的位置资讯来掌握全球各地路况。,为了预测不久后的路况,GoogleMaps会分析过往一段时间内的车流量模式,接着交叉参考过往车流量模式资料库及即时路况资料,再根据这两组资料运用机器学习技术产生预测结果。,最终,GoogleMaps在结合车流量预测和即时路况资讯后,发现如果再继续沿着目前的路线行驶30分钟,可能会碰到大塞车,导致来不及看诊
2024-03-21 22:05 -
华为向海外用户正式推多个全新应用:搜索、地图等
据介绍,PetalSearch为海外170多个国家和地区用户提供应用、新闻、视频、图片、购物、旅行、机票、酒店、音乐、本地服务以及各类生活资讯等20余类领域的搜索服务,并支持50多种语言。,另外,HUAWEIDocs还为全球100多个国家和地区的用户提供一体化文档服务,用户可以在线管理文档、演示文稿、表格、PDF等50多种格式的本地及云端文件。,通过登录同一个华为帐号,用户可以在多台设备上编辑并同
2024-03-21 21:22 -
亚马逊最大第三方卖家倒闭了
Pharmapacks成立于2010年,当时是纽约布朗克斯区的一家实体药店,后来转向互联网,成为亚马逊美国网站上最大卖家之一。,”Packable此前曾获得包括凯雷集团、富达(Fidelity)和卢加德资本(LugardRoadCapital)在内的知名投资机构注资。,根据Packable网站的消息,该公司首席执行官安德鲁·瓦格纳斯于今年4月悄然辞职,由丹尼尔·迈尔斯接任。
2024-03-19 17:00 -
美国亚马逊前十卖家——Pharmapacks的逆袭之路
第一条【Master Brain】自从创始人Andrew Vagenas 创立公司之初,他们就注重内部系统软件的开发,尤其是调价系统,他们不但监测亚马逊上其他卖家价格,还会根据线下店铺及其他电商平台上的价格作出实时调整。,可能有很大比例是物流部门的人,他们一般不会在LinkedIn上注册信息。,第四条【客服系统】这点也是我们国内卖家的一个痛点,Pharmapacks除了有客服人员通过电话和邮件与客
2024-03-13 22:10
热门标签
-
搜索引擎如何识别原创 网站被搜索引擎降权的原因
2024-03-21 18:08
-
利用Google搜索与某开放 API工具结合做免费SEO分析 robots.txt协议如何设置禁止搜索引擎抓取?
2024-03-21 18:08
-
搜索引擎抓取网站内容的原理 搜索引擎如何识别原创
2024-03-21 18:08
-
百度搜索引擎原理一,抓取建库,Spider抓取系统的基本框架 使用vue后怎么针对搜索引擎做SEO优化?
2024-03-21 18:08
-
常用搜索引擎/网址导航/网站目录网站收录提交入口收藏 百度搜索飓风3.0后的变化
2024-03-21 18:08
-
2020年搜索优化方向 2019年中国搜索引擎市场份额排行榜
2024-03-21 18:08
-
百度搜索引擎核心专利 拼多多搜索排名底层逻辑算法
2024-03-21 18:08
-
头条搜索投放方法论 企业如何解决搜索引擎中出现的负面信息?
2024-03-21 18:08
-
57个用于搜索引擎优化的小技巧 流量生态矩阵:搜索引擎的流量突围之战
2024-03-21 18:08
-
搜索引擎技术之倒排索引原理详解,及案例分析 Google SEO 系列 - 搜索引擎原理
2024-03-21 18:08
-
头条搜索之站长平台索引量介绍,与2个常见问题 用Python和OpenCV构建属于自己的图像搜索引擎
2024-03-21 18:08
-
如何成为百度搜索的精选摘要? 关注搜索算法 外链的重要性不再
2024-03-21 18:08
-
世界那么大,何必用百度?搜索引擎汇总,总有一款适合你 SEO优化师,不会告诉你的谷歌搜索引擎规则
2024-03-21 18:08
-
搜索引擎各大站长平台汇总 搜索引擎讨厌的网站
2024-03-21 18:08
-
SEO优化中品牌词负面信息压制方法 什么是搜索引擎本地算法,它对SEO有那些影响?
2024-03-21 18:08
-
Tag标签使用在seo优化中的作用 优化SEO博客帖子的6种方法
2024-03-21 18:08
-
什么是SEO地域性排名 SEO算法演变与破解
2024-03-21 18:08
-
2019年SEO内部链接终极指南 优质锚文本链接对网站SEO还有这些好处
2024-03-21 18:08
-
国外google seo大牛分析了100万个搜索结果得出的影响排名的因素 SEO和SEM有什么区别?
2024-03-21 18:08
-
谷歌SEO中的常见术语词汇解释 从搜索引擎遇到的挑战来学习SEO
2024-03-21 18:08