C 中 memset 函数的复杂性

标签 c complexity-theory big-o memset

我和一些 friend 讨论了一段代码,我们讨论了在 C 中使用 memset 函数,如果我们初始化一个大小为 N 的数组,这个函数在 Big-O 符号中的顺序是什么?

最佳答案

在您可以直接访问页表并且它们以分层方式存储的系统上,memset 可以通过 O(log n) 实现用写入时复制引用替换整个虚拟地址映射到填充给定字节值的单个页面。但是请注意,如果您将来要对该对象进行任何修改,memset 的正常 O(n) 成本将被推迟到页面错误以实例化修改页面时单独复制页面。

关于C 中 memset 函数的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11663316/

相关文章:

algorithm - 我对确定解决此任务的最佳排序算法的分析是否正确?

c - 为什么我的 DEBUG_PRINT 宏没有在包含它的 c 文件中被调用

Codeblocks C 项目 - 头文件多余? (为什么项目不需要它来工作?)

c++ - 插入/放置到位置已被占用的哈希表中

c++ - 我如何有效地遍历多种类型的树?

c++ - 这个算法解决数独的时间复杂度是多少?

algorithm - 程序复杂度类

c - 为什么我的指针大小在 64 位计算机上是 4 个字节?

c - 用于生成 shell 的十六进制代码实现

algorithm - 为给定的运行时函数 f(n)=O(n^2)+nlog(n) 寻找可能的大 theta?