首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空间复杂性(Python)

空间复杂性(Python)
EN

Stack Overflow用户
提问于 2018-09-24 10:10:37
回答 1查看 3.8K关注 0票数 0

我有一个问题,假设gdc(i,n)时间和空间复杂度是O(1),这个函数的空间复杂度是多少?由于一个for循环,时间复杂度为O(n)。空间的复杂性如何?答案是O(1)但我不明白为什么..。结果在for循环中取n个空间,所以不是O(n)吗?

代码语言:javascript
复制
def gcd_fun(n):
   for i in range(1, n+1):
      result += gcd(i, n)
   return result
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 10:14:43

这取决于您的python版本。如果您使用python 2,它将为range函数创建列表。列表分别需要O(n)内存复杂度。否则,如果使用python 3,它将创建生成器。

更新:正如Vineeth所说,range不是迭代器。抱歉误导你。

根据文件:

与常规列表或元组相比,range类型的优点是,range对象将始终占用相同(小)内存量,而不管它所代表的范围的大小(因为它只存储开始值、停止值和步骤值,根据需要计算单个项和子范围)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52477036

复制
相关文章

相似问题

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