根据这些说明,DFS被认为具有空间复杂度,其中是树的分支因子,是状态空间中任何路径的最大长度。
现在,有关DFS的Wikipedia文章的“信息框” 针对算法的空间复杂性提供了以下内容:
,如果遍历整个图而没有重复,则最长路径搜索长度为隐式图,而不会消除重复的节点
这更类似于我认为DFS的空间复杂度,即,其中是算法达到的最大长度。
我为什么认为是这种情况?
好吧,基本上,我们不需要存储除当前正在查看的路径的节点以外的任何其他节点,因此在Wikibook和我推荐给您的注释提供的分析中,没有必要乘以至。
此外,根据Richard Korf 在IDA *上发表的这篇论文,DFS的空间复杂度为,其中被视为“深度截止”。
那么,DFS的正确空间复杂度是多少?
我认为这可能取决于实现方式,因此,我希望能对不同已知实现方式的空间复杂性做出解释。
example where a depth-first traversal on a graph would not result in a tree
无需过多考虑:解析。(等待:您的意思是result in a tree
什么??问题是关于搜索/遍历图的。)
DFS is considered to […] of the tree
并不是每个遍历深度的图形都是一棵树。