BFS与DFS

作者: Laura McKinney
创建日期: 4 四月 2021
更新日期: 12 可能 2024
Anonim
5.1 Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search
视频: 5.1 Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search

内容

广度优先搜索的BFS与深度优先搜索的DFS的区别在于,广度优先搜索是使用队列存储访问顶点的图遍历方法,而深度优先搜索是使用堆栈的图遍历方法用于存储访问的顶点。


呼吸优先搜索和深度优先搜索是计算机编程中最重要的概念之一。深度优先搜索遵循从头到尾的路径,而该路径是另一个节点的头节点,这是逐级进行优先搜索的工作。如果我们谈论主要区别,那么广度优先搜索的BFS和深度优先搜索的DFS之间的主要区别是广度优先搜索是图遍历方法,该方法使用队列来存储访问的顶点,而深度优先搜索是一种图形遍历方法,使用堆栈来存储访问的顶点。广度优先搜索,简称为BFS,BFS用于遍历图形。该队列用于将访问的顶点存储在BFS中。 BFS在顶点上工作,已访问的顶点存储在队列中。顶点一一存储。充分探究图中的每个节点,然后访问图中的其他顶点。

深度优先搜索(称为DFS)也是一种图形遍历方法,该方法使用堆栈来存储顶点。广度优先搜索不是基于边缘的方法,而深度优先搜索是基于边缘的方法。深度优先搜索以递归方式进行,其中通过边探索顶点。在深度优先搜索中,每个顶点访问一次,检查两次。

内容:BFS和DFS之间的区别

  • 比较表
  • BFS
  • DFS
  • 关键差异
  • 结论
  • 解释性视频

比较表

基础BFSDFS
含义广度优先搜索是一种图形遍历方法,该方法使用队列来存储访问的顶点深度优先搜索是一种图形遍历方法,它使用堆栈来存储访问的顶点。
算法 广度优先搜索是基于顶点的算法深度优先搜索是基于边缘的算法
记忆广度优先搜索效率低下深度优先搜索可有效利用内存
应用 检查图中的二部图,连接的组件和最短路径。检查两边连通图,强连通图,无环图和拓扑顺序。

BFS

广度优先搜索,简称为BFS,BFS用于遍历图形。该队列用于将访问的顶点存储在BFS中。 BFS在顶点上工作,已访问的顶点存储在队列中。顶点一一存储。充分探究图中的每个节点,然后访问图中的其他顶点。广度优先搜索用于查找图是否已连接。广度优先搜索用于检测二分图。通过使用BFS查找最短路径。


DFS

深度优先搜索(称为DFS)也是一种图形遍历方法,该方法使用堆栈来存储顶点。广度优先搜索不是基于边缘的方法,而深度优先搜索是基于边缘的方法。深度优先搜索以递归方式进行,其中通过边探索顶点。在深度优先搜索中,每个顶点访问一次,检查两次。

关键差异

  1. 广度优先搜索是使用队列存储访问顶点的图遍历方法,而深度优先搜索是使用堆栈存储访问顶点的图遍历方法。
  2. 广度优先搜索是基于顶点的算法,而深度优先搜索是基于边缘的算法
  3. 广度优先搜索的内存效率低,而深度优先搜索的内存效率低。
  4. 检查图中的二部图,连通分量和最短路径,而检查两边连通图,强连通图,无环图和拓扑顺序。

结论

在上面的这篇文章中,我们看到了呼吸优先搜索与深度优先搜索与实现之间的明显区别。

解释性视频