搜索算法——BFS.pptVIP

  • 19
  • 0
  • 约4.08千字
  • 约 12页
  • 2017-08-17 发布于安徽
  • 举报
搜索算法——BFS 江家和 BFS:Breadth First Search 宽度优先搜索(广度优先搜索) 就是先往“广”的地方找,再一层一层推下去。 换句话说就是先把同层的找完,再往下一层去找,是一种“扩散”的思想。 每个深度为t的结点一定会在深度为t+1的结点前被搜寻到。 用队列实现。 BFS 前面我们说BFS是扩散的思想,现在用迷宫问题来解释: 一般的迷宫问题是只要找到从入口到出口的路就可以了。 但是现在需要求最少走几步就能找到出口? 当然我们可以使用暴力法去求解,把所有可能性都列出来,然后从中找步数最少的,这种暴力法就是DFS。DFS在求解这类问题时的效率是非常非常低的,使用BFS就很合适,效率要高多了。 让我们分析一下: BFS 这是一个迷宫 S为起点,F为终点 涂黑的区域表示不通 每次只能上下左右移动,而且每次只能走一格 下面用队列来求解: 迷宫问题:求从起点到终点的最短路径,并输出相应的点的坐标。 示例输入: 7 7 {行列数} 7 1 1 1 {起始点和终止点} 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 bfs算法流程如下: open:=1;closed:=0; h[open]:=初始状态; {初始状态进入队列}

文档评论(0)

1亿VIP精品文档

相关文档