31得票2回答
BFS和DFS在二叉树上的运行时间是O(N)吗?

我了解BFS和DFS在一般图上的运行时间复杂度为O(n+m),其中n是节点数量,m是边数量,这是因为对于每个节点都必须考虑其邻接列表。然而,当BFS和DFS在二叉树上执行时,它们的运行时间复杂度是多少呢?我认为它应该是O(n),因为一个节点可能的边数是常数(即2)。请确认这是否是正确的理解。如...

30得票5回答
广度优先搜索和迭代加深算法的区别

我理解BFS和DFS,但我真的无法弄清楚迭代加深搜索和BFS之间的区别。显然,迭代加深搜索的内存使用量与DFS相同,但我无法看出这是如何可能的,因为它就像BFS一样不断扩展。 如果有人能澄清一下那就太棒了。 A / \ B C / / \ D E F

28得票4回答
双向搜索的终止条件

根据我所读的大部分内容,双向搜索算法被认为是在“前向”和“后向”边界首次相交时终止的。然而,在《人工智能:一种现代方法》第3.4.6节中,Russel 和 Norvig 指出: “通过用检查两个搜索的边界是否相交来替换目标测试来实现双向搜索;如果它们相遇,则已找到解决方案。重要的是要意识到,...

28得票8回答
如何在有向图中以线性时间找到两个顶点之间不同最短路径的数量?

这是练习题: 假设有一个有向图 G=(V,E),其中 v 和 w 是两个顶点。请设计一种线性时间复杂度算法,用于查找 v 和 w 之间不同的最短路径数量(路径不一定要求顶点不重复)。注意:G 中的边都是没有权重的。 总结一下: G 是一个有向图; 需要找到最短路径的数量; 需要...

27得票6回答
如何检测有向图是否有环?

如何检测有向图是否包含环?我考虑使用宽度优先搜索,但不确定。您有什么想法吗?

26得票10回答
什么是广度优先搜索,它有什么用途?

通常在我需要遍历图时,我总是使用深度优先搜索,因为它的空间复杂度更低。尽管我的经验相对有限,但我还真没有遇到过使用广度优先搜索的情况。 什么情况下使用广度优先搜索才有意义呢? 更新:我想这里回答展示了我使用BFS的情况(因为当时我认为应该使用DFS)。尽管如此,我仍然很想知道,在这种情况下...

26得票3回答
深度优先搜索为什么被认为是空间高效的?

我正在学习一个算法课程,在课程中提到,深度优先搜索(DFS)比广度优先搜索(BFS)更加节省空间。 为什么会这样呢? 尽管它们基本上在做同一件事情,但是在DFS中,我们将当前节点的后继节点放入堆栈中,而在BFS中,我们将后继节点入队。

26得票2回答
深度优先搜索和广度优先搜索的理解

我正在制作俄罗斯方块作为一个有趣的副业项目(不是作业),并希望实现 AI,让电脑自己玩。我听说可以使用 BFS 搜索可用位置,然后创建最合理下落位置的聚合分数来完成。但我对 BFS 和 DFS 算法有些困惑。我最好的学习方式是画出来...我的绘图正确吗? 谢谢!

26得票1回答
解释BFS和DFS在回溯方面的含义

关于深度优先搜索的维基百科: 深度优先搜索(DFS)是一种用于遍历或搜索树、树结构或图的算法。在图的情况下,从根节点开始(选择某些节点作为根),沿每个分支尽可能远地探索,然后回溯。 那么什么是广度优先搜索? “一种算法,选择一个起始节点,检查所有节点并回溯,选择最短路径,选择相邻节点并回...

25得票4回答
Leetcode上“岛屿的数量”问题的DFS和BFS时间和空间复杂度

这里是问题描述。前两个建议的解决方案涉及DFS和BFS。这个问题涉及到前两种方法:DFS和BFS。 我已经在这里包含了问题陈述以便更容易阅读。Given a 2d grid map of '1's (land) and '0's (water), count the number of i...