深度优先搜索与广度优先搜索异同

相同:

1,这两种方式都是盲目的搜索,只有在搜索空间小于计算机内存时才具有可行性。

2,两种方式都有open集合和closed集合,open集合用来存储将要访问的节点,closed集合存储访问过的节

点。

3,两种方式的平均时间复杂度都是O(b^d).其中b是分支因子,d是搜索深度。

4,两种访问方式都要涉及到在closed集合中查找节点是否已经访问过,对closed集合采用不同的数据结构

存储有不同的性能,线性查找需要O(n)的时间复杂度,散列查找则需要常数的时间复杂度。

区别:

1,很明显的搜索策略不同,一个是深度,一个是广度^-^,这个大家都知道~

2,深度优先搜索需要使用栈来存储open集合,添加和删除操作只需要常数时间,广度优先搜索需要使用队

列来存储open集合,添加和删除操作只需要常数时间。

3,深度优先搜索中栈只需要存储b*d个状态节点。广度优先搜索则存储b^d个状态节点。所以两种搜索方式

的存储规模不同。

4,深度优先搜索可以找到到目标状态的多条路径,广度优先搜索则保证找到的是到目标状态的最短路径。

注:如果搜索的是树,则深度优先搜索等价先根遍历,广度优先搜索等价层次遍历。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值