DFS——深度优先搜索基础

转载 2015年11月21日 19:56:06

【0】README

0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 review DFS——深度优先搜索 的基础知识;


【1】深度优先搜索的应用

1.1)深度优先搜索算法描述(转自天勤计算机考研高分笔记——数据结构)

  • 1.1.1)图的深度优先搜索遍历(DFS)类似于二叉树的先序遍历。它的基本思想是(steps):
    • step1)首先访问出发点v, 并将其标记为已访问过;
    • step2) 然后选取与v 邻接的未被访问的任意一个顶点w , 并访问它;
    • step3)再选取与w 邻接的未被访问的任一顶点并访问它, 依次重复进行;
    • step4)当一个顶点所有的邻接顶点都被访问过时, 则依次退回到最近被访问过的顶点(这里就是一个递归访问的过程), 若该顶点还有其他邻接顶点未被访问, 则从这些未被访问的顶点中取一个重复上述的访问过程, 直至图中所有顶点都被访问过为止;

1.2)全局布尔型数值 Visited[] 初始化为false。 通过只对那些尚未被访问的节点递归调用该函数, 我们保证不会陷入无限循环。如果图是无向的且不连通的, 或是有向的但非强连通的,这种方法可能会访问不到某些节点。 此时,我们搜索一个未被标记的节点, 然后应用深入优先遍历, 并继续这个过程直到不存在未标记的节点为止。 因为该方法保证每一条边只访问一次, 所以只要使用邻接表, 则执行遍历的总时间就是 O(|E| + |V|);

举报

相关文章推荐

DFS深度优先搜索(3)--hdu2181(哈密顿绕行世界问题)(基础题)

哈密顿绕行世界问题                                 Time Limit:1000MS ...

基础算法(四)---深度优先搜索(DFS)

深度优先搜索原理、步骤和Java实现

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

深度优先搜索DFS——图邻接表表示

作为图的一个基本算法,DFS应用很广,可以推广出很多实用的算法。下面贴出一个比较常用的用邻接表表示的图DFS。 /* 图邻接表表示DFS input: 1 7 A 1 5 B 2 4...

深度优先搜索——DFS遍历

dfs算法

HDU1010 Tempter of the Bone(深度优先搜索DFS+奇偶性剪枝)

题目: Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav...

【算法导论】图的深度优先搜索遍历(DFS)

关于图的存储在上一篇文章中已经讲述,在这里不在赘述。下面我们介绍图的深度优先搜索遍历(DFS)。 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj;访问vj之后,又访问vj的一个邻接点,...

北大ACM1010-深度优先搜索(DFS)初探

抱歉最近太忙。。各种出差,难得静下心来研究下,上一篇说到暴力破解,这篇来说说DFS,DFS不明白意思的可以去百度之,简单来说就是从一个节点出发,一直探索与该节点连同的节点,直到走不通为止,然后回退到上...

图论(三)--深度优先搜索(DFS)

基于算法导论图算法-深度优先搜索 题目描述 问题分析 源代码 结果截图 题目描述深度优先搜索(用递归和栈分别实现):对图进行遍历,得到连通分支数,并求出每个顶点的发现时间和完成时间问题分析与广搜相同,...

ZOJ1002 Fire Net DFS(深度优先搜索) 已AC

Fire Net Time Limit: 2 Seconds      Memory Limit: 65536 KB Suppose that we have a square city with...

啊哈!算法—深度优先搜索DFS—解救小哈

小哈去玩迷宫,结果迷路了,小哼去救小哈。迷宫由n行m列的单元格组成(n和m都小于等于50),每个单元格要么是空地,要么是障碍物。 问题:帮小哼找到一条从迷宫的起点通往小哈所在位置的最短路径。(注意:障...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)