algorithm - 迭代加深深度优先搜索比深度优先搜索的时间复杂度更高?

标签 algorithm time-complexity depth-first-search iterative-deepening

看来迭代加深搜索的渐近时间复杂度应该比BFS高,因为每增加一次depth-limit,都要从头开始搜索。

但 wiki 另有说法,为什么?

最佳答案

如果树不平衡并且答案比最深的叶子更靠近根,那么答案将通过小于树的最大深度的深度限制找到,而深度优先搜索可能有在找到正确答案之前搜索树的一半到最大深度。由于树中的节点数可能随深度大致呈指数增长,这可能是一个很好的交易 - 最大深度为 10,搜索大约 1024/2 = 512 个节点比多次搜索总计 1 + 2 + 4 + ... 256 = 511 个节点,所以任何比这更极端的东西都是纯利润 - 该示例完全搜索深度达到并包括深度 8。

(在某些情况下,任意大的深度都可能出现错误答案)。

关于algorithm - 迭代加深深度优先搜索比深度优先搜索的时间复杂度更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23209272/

相关文章:

algorithm - 查找一个值是否包含在二叉树中

与 O-notation 的算法比较

performance - 跟进 [Segmenting Redis By Database] 的 Q

algorithm - 如果向无向加权图 G 添加了一条新边,则查找 MST T 是否仍然是新图 G' 的 MST

c# - 您如何将与集合中其他项目具有依赖性的项目分组?

c# - 关于日期格式的问题 - 16 :15 to 16:00

algorithm - 如何将 100 个不同的文件放在 20 个文件系统上?

java - 通过伪代码解析大O分析的代码

java - 为什么返回值不等于数组?

python - 为二叉树实现 DFS 和 BFS