DFS & BFS

本文深入探讨了两种图遍历算法——深度优先搜索(DFS)和广度优先搜索(BFS)。DFS强调先走到底再回溯,而BFS则采用逐层探索的方式。通过实例解析,展示了DFS的递归与回溯过程,以及BFS的状态选取与标记策略。两种算法各有特点,适用于不同的问题解决场景。
摘要由CSDN通过智能技术生成

DFS深度优先搜索

深度优先搜索分为2步:

1.递归下去

2.回溯上来

深度优先,以深度为准则,先一条路走到底,直到到达目标,也就是递归下去,若没有到达目标且又无路可走,那么退回到上一步的状态,在另一条路,这便是回溯上来

如上图从x走到o,先向右走,走到底发现无路可走.

 

回溯到上一个位置

 

然后再向下走

 

走到最下边时,可以发现在向右走一步就可以到达终点.

 

 

BFS广度优先搜索

广度优先搜索和深度优先搜索的不同在于,深度优先搜索不管有多少条岔路先一条路走到底,不成功就返回上一个路口然后就选择下一条岔路,而广度优先搜索在面临一个路口时,把所有的岔路口都记下来,然后选择其中一个进入,然后将他的分路情况记录下来,然后再返回来进入另一个岔路,并重复这样的操作.

还是从x出发到达o

 

记录可以触发的岔路口,并标记一步可以到达

 

然后第一次标记路口的可走路口标记为2步可以到达.

 

再依次进行标记.

 

我们便成功寻找到了路径,并且把所可行的路径都求出来,在广度优先搜索中,可以看出是逐步求解的,反复的进入与退出,将当前的所有可行解都记录下来,然后逐个去查看.

在DFS中我们关键点是递归和回溯,而BFS中我们的关机键点则是状态的选取和标记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值