- 5
- 0
- 约2.77千字
- 约 5页
- 2022-08-31 发布于天津
- 举报
宽度优先搜寻算法
1.概述:
宽度优先搜寻算法(又称广度优先搜寻)是最简便的图的搜寻算法之一,这一算法也是许多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采纳了和宽度优先搜寻类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地绽开并检查图中的全部节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜寻整张图,直到找到结果为止。
之所以称之为宽度优先算法,是由于算法自始至终始终通过已找到和未找到顶点之间的边界向外扩展,就是说,算法首先搜寻和s距离为k的全部顶点,然后再去搜寻和S距离为k+l的其他顶点。
例题hdu 1242
(DFS做法)
这一此我们介绍广度优先搜寻
根据惯例,我们还是先说一下该题目的主要易错点
1.天使可能有多个伴侣,所以不能从伴侣的位置开头着天使,只能是从天使找离他最近的伴侣
2.题目要求的是找到一个用时最少的伴侣,而不是步数最少
既然是广度优先,那么必定用到队列,但是队列只能是先进先出,即是步数少的先遍历到,明显是不符合题目要求的,那应当怎么办呢?
c++给我们供应了标准的函数库,可以引入#include queue 并定义优先队列类型 priority_queue,并自动对里面的元素进行排序
假如排序不符合要求,可以给出小于号 “” 的运算符重载函数,当然在结构体里面进行了,代码里面有详细的实现
广度优先搜
原创力文档

文档评论(0)