经典算法之深度优先搜索(DFS)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典算法之深度优先搜索(DFS)相关的知识,希望对你有一定的参考价值。


一、前言

本文介绍了经典搜索算法: 深度优先搜索(DFS)

两个小故事:


二、基本概念

1.简单介绍

前言中的两个小故事,孙越的爸爸找钥匙开门的过程和DFS小朋友找女朋友都是一个搜索过程。 简而言之,搜索就是尝试问题中所有的可能性,在所有的可能性中找到正确的结果。而深度优先搜索用一句话概括就是:“ 一直往下走,走到最后还是走不通,那就换条路再走,直到无路可走。”用一个成语来形容,那就是 :“ 不撞南墙不回头。”

2. 官方概念

以下是维基百科上的解释:

三、动图分析

DFS会从初始节点出发,按预定的顺序扩展到下一个节点,然后从下一节点出发继续扩展新的节点,不断递归执行这个过程,直到某个节点不能再扩展下一个节点为止。此时,则返回上一个节点重新寻找一个新的扩展节点。如此搜索下去,直到找到目标节点,或者搜索完所有节点为止。

动图:

四、模板框架

以上是关于经典算法之深度优先搜索(DFS)的主要内容,如果未能解决你的问题,请参考以下文章

算法系列之广度优先搜索与深度优先搜索

走遍无人区之深度优先搜索(DFS)和广度优先搜索(BFS)

一文搞懂深度优先搜索广度优先搜索(dfsbfs)

一文搞懂深度优先搜索广度优先搜索(dfsbfs)

深度优先搜索解决迷宫问题

深度优先搜索原理与实践(java)