深度优先搜索 广度优先搜索理解

本文介绍了深度优先搜索(DFS)和广度优先搜索(BFS)这两种图搜索算法。DFS采用回溯思想,适合递归实现,常用于解决迷宫问题,时间复杂度为O(E),空间复杂度为O(V)。BFS则采用层层推进策略,适用于寻找最近路径,时间复杂度为O(V+E),空间复杂度为O(V)。文章还提到了在搜索过程中使用的visited、vertex和prev三个重要辅助变量。
摘要由CSDN通过智能技术生成

                                     深度优先搜索广度优先搜索

1. 什么是 “搜索” 算法

我们知道,算法都是作用于某种具体的数据结构上的,而深度优先搜索算法和广度优先搜索算法就是作用于图这种数据结构的。

图上的搜索算法,就是从图中的一个顶点出发,到另一个顶点的路径。图有两种存储方法,邻接矩阵和邻接表,在这里我们用邻接表来存储图,并以无向图作为例子,但这两种算法也同样都可以应用在有向图中。

V 为顶点个数,E 为边的条数。

 

深度优先搜索

深度优先搜索(Depth-First-Search),简称 DFS,最直观的例子就是走迷宫。

假设你站在迷宫的某个分岔路口,你想找到出口。你随意选择一个岔路口来走,走着走着发现走不通的时候就原路返回到上一个分岔路口,再选择另一条路继续走,直到找到出口,这种走法就是深度优先搜索的策略。

上图中,我们希望找到一条从 s 到 t 的路径,其中实线表示向前遍历,虚线表示回退。可以看到,深度优先搜索到的并不是从 s 到 t 的最短路径。

 

实际上,深度优先搜索用的是一种比较著名的思想——回溯思想,这种思想非常适合用递归来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haikuotiankongdong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值