当前位置:网站首页 > 深度学习 > 正文

广度优先搜索和深度优先搜索(广度优先搜索和深度优先搜索的基本思想)



1 概述

2 广度优先搜索(Breath First Search)

广度优先搜索(Breath First Search)简称BFS,它是一种地毯式层层推进的搜索策略,即优先查找距离顶底近的,然后是次近的,依次往外搜索。如下图所示BFS搜索策略,搜索结果 1->2-3->4->5->6->7。

图2-1

算法描述:
1.从图中顶点V出发,首先访问V
2.依次访问V的,各个未被访问的邻接节点
3.依次从上述邻接节点出发,依次访问他们的各个未被访问的邻接节点。
4.如果此时图中任然有未被访问的顶点,则选择图中的一个未被访问的顶点作为起始顶点。重复广度优先搜索的过程,直到图中的所有节点均被访问过。

伪代码描述:

 

3 深度优先搜索(Depth First Search)

深度优先搜索(Depth First Search)简称DFS,其过程简要来说就是对每一个可能的分支路径深入到不能深入为止,而且每个节点只能访问一次。 图2-1所示DFS搜索策略,搜索结果 1->2->5->7->3->6->4。

算法描述:
1.从图中某个顶点V出发,访问顶点V
2.依次从V未被访问的邻接点出发,对图进行深度优先遍历;直至图中和V有路径相通的顶点都被访问
3.若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。

伪代码描述

 

java 代码实现

 

4 LeetCode实战

 

思路:使用bfs,将已经访问节点置位0

 

参考文献:
[1]https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/
[2] https://en.wikipedia.org/wiki/Breadth-first_search
[3]https://en.wikipedia.org/wiki/Depth-first_search

到此这篇广度优先搜索和深度优先搜索(广度优先搜索和深度优先搜索的基本思想)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 广度优先搜索和深度优先搜索的区别(广度优先搜索和深度优先搜索的区别和联系)2024-12-26 11:27:09
  • 广度优先搜索和深度优先搜索都属于什么算法(广度优先搜索序列和深度优先搜索序列)2024-12-26 11:27:09
  • 广度优先搜索和深度优先搜索的优缺点(深度与广度优先搜索)2024-12-26 11:27:09
  • 微信小程序学习笔记-(9)-仿智行火车票2024-12-26 11:27:09
  • 微信小程序学习笔记-(10)-猫眼电影案例2024-12-26 11:27:09
  • webpack5学习与实战-(一)-webpack的初步认识2024-12-26 11:27:09
  • webpack5学习与实战-(三)-引入其他资源模块2024-12-26 11:27:09
  • webpack5学习与实战-(五)-直接加载资源2024-12-26 11:27:09
  • webpack5学习与实战-(七)-代码分离2024-12-26 11:27:09
  • 广度优先搜索和深度优先搜索都可以用于遍历一棵树(广度优先搜索序列和深度优先搜索序列)2024-12-26 11:27:09
  • 全屏图片