首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用O(1)性能初始化n元素数组?

使用O(1)性能初始化n元素数组?
EN

Stack Overflow用户
提问于 2008-11-19 21:55:56
回答 8查看 8.6K关注 0票数 4

有人知道我该怎么做?

谢谢

EN

回答 8

Stack Overflow用户

发布于 2008-11-19 22:03:13

如果您需要对一组n元素中的每个元素执行某些操作,则无法获得高于O(n)的性能。

票数 5
EN

Stack Overflow用户

发布于 2008-11-19 22:01:20

如果你的意思是“在一个独立于N的时间内初始化一个由N个项目组成的密集数组”,那么这在物理上是不可能的。密集数组的存储空间与项的数量呈线性增长,初始化该空间需要线性的时间。

您可以使用稀疏数组进行固定时间的初始化。这本质上是一个关联数组(或hashmap,或字典,或表,取决于语言),它在项目第一次被访问时对其进行初始化。

票数 4
EN

Stack Overflow用户

发布于 2008-11-19 22:24:11

我认为这只是一个简单的语法问题。在C++中,您可以执行以下操作:

代码语言:javascript
运行
复制
int foo[1000] = {0};

数组中的所有值现在都是0

虽然它看起来像是在固定时间内完成的,但它仍然是O(n)

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

https://stackoverflow.com/questions/303519

复制
相关文章

相似问题

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