[算法]深度优先搜索(DFS)
前言&吐槽
我看网上都说深度优先搜索是一种遍历树和图的算法,但是我还没学数和图啊!老师就讲了。
不过这种算法也确实挺好用的,下面我们就来介绍一下。
介绍
DFS形象点来说就是“不撞南墙不回头”,必须要一条路走到黑,之后再考虑其他路。
因此DFS最重要的部分就是回溯了。
而关于此算法的步骤,网上总结得已经很好了:
1.递归下去
2.回溯上来
下面我们画图来更好得理解一下这种算法。
图示
首先,假设我们现在的任务是从A走向B

我们可以看到,在每一个岔路口,都只有向左向右两种方向,那么DFS则是先一条路走到低。

发现走不到,那么回到上一个节点

发现不行,那么回到上面的节点,遍历父节点右边的那条路,如此循环下去,直到找到路径。


浙公网安备 33010602011771号