Questions tagged «breadth-first-search»

在图论中,广度优先搜索(BFS)是一种图搜索算法,它从根节点开始并探索所有相邻节点。然后,对于每个最近的节点,它探索其未探索的邻居节点,依此类推,直到找到目标。

16
什么时候使用深度优先搜索(DFS)和广度优先搜索(BFS)?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 8天前关闭。 我了解DFS和BFS之间的区别,但是我想知道什么时候使用另一种比较实用? 任何人都可以举例说明DFS将如何胜过BFS,反之亦然?



7
为什么DFS和BFS的时间复杂度为O(V + E)
BFS的基本算法: set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited load into queue mark vertex 所以我认为时间复杂度是: v1 + (incident edges) + v2 + (incident edges) + .... + vn + (incident edges) v顶点1到哪里n 首先,我所说的正确吗?其次,这是如何的O(N + E),以及关于其原因的直觉将非常好。谢谢

7
寻找最短路径时,广度优先搜索如何工作?
我已经进行了一些研究,但似乎缺少该算法的一小部分。我了解广度优先搜索的工作原理,但我不了解它如何将我带到特定的路径,而不是仅仅告诉我每个节点可以到达的位置。我想解释我的困惑的最简单方法是提供一个示例: 例如,假设我有一个这样的图形: 我的目标是从A到E(所有边均未加权)。 我从A开始,因为那是我的血统。我排队A,然后立即将A出队并对其进行探索。因为A连接到B和D,所以得到B和D。因此,我将B和D都排队。 我将B出队并进行探索,发现它导致了A(已经探索过)和C,因此我将C排队。然后出队D,发现它导致了我的目标E。然后我将C出队,并发现它也导致了我的目标E。 我从逻辑上知道最快的路径是A-> D-> E,但是我不确定广度优先搜索到底有多大帮助-我应该如何记录路径,以便在完成后可以分析结果并查看最短的路径是A-> D-> E? 另外,请注意,我实际上并没有使用树,因此没有“父”节点,只有子节点。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.