宽度优先搜索的复杂度分析
首先,我们假设搜索树的状态空间中每个状态都有b个后继。
时间复杂度分析
搜索树的根节点生成第一层的b个节点,每个子节点又生成b个子节点,第二层则有b平方个节点,依次类推。于是可以得到生成的节点总数为O(b^d),其中d为深度。这也就是宽度优先搜索的时间复杂度。
空间复杂度分析
因为FIFO队列中最多存储O(b^d-1)个节点在探索集中,O(b^d)个节点在边缘节点集中,所以空间复杂度由边缘节点机的大小决定,即空间复杂度为O(b^d).
宽度优先搜索的优缺点
优点:宽度优先搜索是完备的,能够找到目标节点,且能保证最短(在所有行动的代价都相同的情况下)
缺点:在深度d比较大的时候,时间和空间都会指数爆炸!
宽度优先搜索的复杂度分析相关推荐
- 野人与传教士——宽度优先搜索(完整报告,含全部代码)
题目: 野人与传教士渡河问题:3个野人与3个传教士打算乘一条船到对岸去,该船一次最多能运2个人,在任何时候野人人数超过传教士人数,野人就会把传教士吃掉,如何用这条船把所有人安全的送到对岸?在实现基本程 ...
- 八数码宽度优先搜索python代码_图之遍历--广度优先遍历
何为广度优先遍历呢? 广度优先遍历(BFS),又叫宽度优先搜索或横向优先搜索,是从根结点开始沿着树的宽度搜索遍历,将离根节点最近的节点先遍历出来,在继续深挖下去. 基本思想是: 1.从图中某个顶点V0 ...
- 广度/宽度优先搜索(BFS)详解
1.前言 广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略.因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,故得名. 一般可以用它做什么呢?一 ...
- 生成图-深度优先搜索/宽度优先搜索
问题提出: 考虑如下图所示的简单图所表示的缅因州的道路系统.在冬天里保持道路通路通畅的唯一方式就是经常扫雪.高速公路部分希望只扫尽可能少的道路上的雪,而确保总是存在连接任何两个乡镇的干净道路.如何才能 ...
- 算法笔记01——深度优先搜索(DFS)/宽度优先搜索(BFS)
深度优先搜索(DFS) 从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解.深度优先搜索从最开始的状态出发,遍历所有可以到达的状态. ...
- 【算法入门】广度/宽度优先搜索(BFS)
广度/宽度优先搜索(BFS) [算法入门] 郭志伟@SYSU:raphealguo(at)qq.com 2012/04/27 1.前言 广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述) ...
- 深度优先搜索和宽度优先搜索
深度优先搜索和宽度优先搜索 bfs和dfs都是遍历图的方法.dfs是不撞南墙不回头,bfs慢慢来,一层一层来. 类型 空间(h为高度) 时间(h为高度) 采用的数据结构 特点 DFS O(h) O( ...
- 【BFS宽度优先搜索】
一.求所有顶点到s顶点的最小步数 1 //BFS宽度优先搜索 2 #include<iostream> 3 using namespace std; 4 #include<que ...
- 层层递进——宽度优先搜索(BFS)
问题引入 我们接着上次"解救小哈"的问题继续探索,不过这次是用宽度优先搜索(BFS). 注:问题来源可以点击这里 http://www.cnblogs.com/OctoptusLi ...
最新文章
- Chart.js-饼状图分析(参数分析+例图)
- tomcat 日志分割脚本
- 如何创建一个自动化测试项目
- android获取自定义属性,android 自定义控件中获取属性的三种方式(转)
- scanf 接收 空格 输入_【C/C++】【输入】关于scanf:输入空格,多次使用
- html文档(.htm)不能正常阅读,HTM或HTML图标变成无法显示和识别的解决方法大全
- 数据库文档生成工具V1.0
- python 数据处理----读取txt 一列数据写入excel 文件
- iOS-UICollectionView快速构造/拖拽重排/轮播实现
- Microsoft.AspNet.Identity 的简单使用
- 关于DevExpress Winform GridControl GridView 主从表(Master-Detail)导出Excel问题
- 全网最全-探花交友项目-面试总结-简历优化
- 【计算机毕业设计】092二手闲置交易市场系统
- IDEA之非常复制黏贴
- 倾斜摄影超大场景的三维模型的顶层合并,提升模型在WEB三维展示效果
- 宿华卸任快手CEO程一笑接替;新思科技扩大与台积公司的战略技术合作 | 全球TMT...
- 华为诺亚方舟实验室简述
- 四大机器学习编程语言对比:R、Python、MATLAB、Octave
- springboot同时接受文件和多个参数
- 学习Python,经常见到PEP,那么PEP是什么呢?