深度优先搜索

综述

与广度优先搜索不同的是,深度优先搜索会优先考虑最近新遇到的搜索状态。所以算法会沿着一条路往下走,直到遇到目标状态,或者一条死路。

和广度优先搜索一样,在使用深度优先搜索时,也可以去维护一个列表(更准确地说,是一个栈),里面存放着所有已知但还未探索过的状态。每一步,算法都会从栈的顶端选出下一步要去探索的状态。但与广度优先搜索不同的是,深度优先搜索会将新的状态加到栈的顶端,而不是尾部。

深度优先搜索是怎么样搜索一个图的

图是由点和连接点的边组成的数据结构。它们可以用来表示很多不同的概念:比如城市地图、网络结构、我们使用和广度优先搜索时一样的例图从 Kingdom Highway Map 中的案发城市——A 城市——来开始搜索。

深度优先搜索会沿着一条路探索下去,直到它遇到一条死路(或者一个之前已经探索过的状态)。也就是说,深度优先搜索优先考虑的是搜索的深度,而不是广度

和之前一样,我们在 H 城找到了目标。不过这一次我们在搜索过程中走了一条不太一样的路径。
和广度优先搜索一样,我们也会记录下已经探索过的点。 这样就可以避免重复探索一个点,这在图里可能有环的时候格外重要。如果不记录的话,你可能会陷入一个环中,无穷无尽地沿着这个环重复探索上面的状态。在上图所示的例子中,我们通过记录下探索过的点来避免将之前已经加入过列表的点 (无论它有没有被探索过)再次加入列表。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值