搜索方式的优缺比较

来源:互联网 发布:淘宝流量来源怎么获取? 编辑:程序博客网 时间:2024/06/06 17:39

首先先来说明常见的搜索方式:(本人目前遇到的 以后遇到新的搜索方法继续更新)

1.dfs(深度优先搜索)。2.bfs(广度优先搜索)3.迭代加深搜索(IDA*)

一.dfs

搜索方式是按照人为设定方向进行搜索不撞南墙不回头 所以适合做找解是否存在的问题 找最优解一般不会用

其优点是空间开销少(因为状态的记录利用回溯是可以用一块内存空间来实现的)

二,bfs

搜索方式是由当前节点 同时向下一次可能方向的节点拓展 适用于找最优解问题

其缺点是空间开销大 因为 每个节点必须记录目前的状态信息(不像dfs可以用一块内存做修改)

三,迭代加深搜索

搜索方式是利用dfs 模拟bfs 我们每次设一个最大层maxd 表示搜索的最大深度 当dfs搜索到此深度是回溯

不难脑补出dfs 模拟bfs的画面  有许多看似bfs的题目要用此方法解决 因为这个省空间 (甚至省时间 当bfs转移代价过大时 而dfs的转移可能是o(1)的)(uva 旋转游戏)