搜索算法——BFS
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
1 2
1
S
2
2
1
A
B
C
D
E
F
G
H
I
J
K
L
• 搜索顺序: A,(B,C,D),(E,F,G,H),(I,J,K,L)
BFS
• • • • 前面我们说BFS是扩散的思想,现在用迷宫问题来解释: 一般的迷宫问题是只要找到从入口到出口的路就可以了。 但是现在需要求最少走几步就能找到出口? 当然我们可以使用暴力法去求解,把所有可能性都列出来, 然后从中找步数最少的,这种暴力法就是DFS。DFS在求 解这类问题时的效率是非常非常低的,使用BFS就很合适, 效率要高多了。 • 让我们分析一下:
BFS
F
• • • •
Sபைடு நூலகம்
这是一个迷宫 S为起点,F为终点 涂黑的区域表示不通 每次只能上下左右移 动,而且每次只能走 一格 • 下面用队列来求解:
BFS
(0,5) (3,5) (2,3) (4,3)
(1,2) (2,6) (2,4) (3,2)
._. 0 1 2 3 4 5 6 0 1 2 3 4 5 6
(0,4) (1,3) (2,1) (3,0) (0,2) (1,0) (6,2) (5,6)
6 5 4 3
7 6 5
6 5 4 3
6 5 3 4 3
8 7 6 5 4 5 4
9 F 7 6 5 5 8 7 6 7 6
(6,0) (3,6) (1,1) (6,4) (2,5) (0,0) (5,3) (4,2) (4,4) (4,0) (1,4) (6,5) (6,1) (2,2) (0,1) (5,4) (4,5) (2,0) (6,6) (5,0) (1,6) (4,6) (3,4) (6,3) (4,1) (5,1)
?当然我们可以使用暴力法去求解把所有可能性都列出来然后从中找步数最少的这种暴力法就是dfsdfs在求解这类问题时的效率是非常非常低的使用bfs就很合适效率要高多了
搜索算法——BFS
• BFS:Breadth First Search • 宽度优先搜索(广度优先搜索) • 就是先往“广”的地方找,再一层一层推 下去。 • 换句话说就是先把同层的找完,再往下一 层去找,是一种“扩散”的思想。 • 每个深度为t的结点一定会在深度为t+1的结 点前被搜寻到。 • 用队列实现。