search - 广度优先搜索和迭代深化的区别

标签 search depth-first-search breadth-first-search iterative-deepening

我了解 BFS 和 DFS,但对于我的生活,我无法弄清楚迭代深化和 BFS 之间的区别。显然,迭代深化与 DFS 具有相同的内存使用量,但我无法看到这是怎么可能的,因为它只是像 BFS 一样不断扩展。
如果有人能澄清那将是很棒的。

如果需要,要处理的树:

    A
   / \
  B   C
 /   / \
D   E   F

最佳答案

据我所知,迭代深化是 DFS 下降到深度 1,然后 DFS 下降到深度 2 ... 下降到深度 n ,依此类推,直到找不到更多级别

例如我认为那棵树会被读取

read                   visited               depth

A                      A                     1

ABC                    ABAC                  2

ABDCEF                 ABDBACECF             3

我相信它几乎可以为每个级别做一个单独的 DFS,并有深度限制并丢弃内存。

关于search - 广度优先搜索和迭代深化的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2994146/

相关文章:

java - Elasticsearch 特殊字符问题

Python IMAP 搜索,搜索结果耗尽所有内存

path-finding - A* 是最好的寻路算法吗?

algorithm - 给定一组数字和运算符,使用最少的运算次数形成给定的数字

c - 是否有任何 POSIX 函数或 glibc 扩展实现了广度优先文件树遍历?

algorithm - 状态空间搜索 : A* and Breadth First Search

python - 从文本段获取 QTreeview 索引

java - 在文本文件中搜索(具有特定模式)

c++ - 在后端中止 Boost Graph DFS

java - 深度优先搜索 1 循环打印