【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索

广度优先搜索(Breadth-First-Search)

广度优先搜索示意图
【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索
代码示例
主要是使用队列的结构
【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索

深度优先搜索(Depth-First-Search)

深度优先搜索示意图
在树里面的搜索路径
【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索
在图里面的搜索路径
【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索
可以看到dfs在不断的回溯,一条路走到底之后不断地回溯到上一个节点,查看有没有没被访问过得节点

代码示例,使用递归,常用
【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索
代码示例,不使用递归,了解即可
【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索

对比BFS和DFS

【算法面试通关40讲】26 - 理论讲解:广度优先搜索 & 27 - 理论讲解:深度优先搜索