首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度优先搜索的空间复杂性

深度优先搜索的空间复杂性
EN

Stack Overflow用户
提问于 2014-12-29 21:15:11
回答 1查看 1.6K关注 0票数 1

也许这个问题之前就有人问过,但是,我不知道如何计算DFS的空间复杂性。例如,在这种情况下,分支因子(B)为3,深度(D)为5,每个节点需要10字节的内存来表示。如何计算空间复杂度?

EN

回答 1

Stack Overflow用户

发布于 2015-08-23 13:41:13

这取决于执行深度优先搜索(DFS)的结构类型:

  • 上:您不需要检查以前是否访问过状态,并且必须只存储当前跟踪(在堆栈中),这将成为最大深度的$d$。对于跟踪上的每个状态,您需要存储已经遍历的传出转换,这将成为每个状态的最大分支因子$b$。因此,您需要$O(d * b)$ space。
  • 上:您需要通过存储已经访问过的所有状态(例如,在哈希表中)来另外检查是否在访问之前访问了状态。因此,您需要$O(d *b+ set )$ space,而V是顶点的集合。在网际网路上,你通常会看到空间复杂度是$O( not )$;通常状态数是主要因素,但是如果你的状态空间有一个很大的$b$,不要忽略空间需求的这一部分!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27696122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档