跳到主要内容

搜索算法介绍

算法解释

深度优先搜索(DFS)广度优先搜索(BFS) 是两种最常见的优先搜索方法,它们被广泛地运用在图和树等结构中进行搜索。本节中,我们重点讨论利用 DFS 和 BFS 去解决一些搜索问题。

深度搜索(DFS)

深度搜索在 二叉树 中体现为 先序遍历,深度搜索的搜索过程本身就是一棵树。

深度搜索的实现方式:递归 、栈

递归实现

todo ...	

使用 记忆化技术 可以提升 递归的效率

栈实现

todo ...

建议:刷题时推荐使用递归式写法,工程上,直接使用栈。

栈与递归的调用原理相同,而递归相对便于实现,因此刷题时推荐使用递归式写法,同时也方便进行回溯。不过在实际工程上,直接使用栈可能才是最好的选择,一是因为便于理解,二是更不易出现递归栈满的情况。

广度搜索(BFS)

示例代码

todo ...