我和一些 friend 讨论了一段代码,我们讨论了在 C 中使用 memset 函数,如果我们初始化一个大小为 N 的数组,这个函数在 Big-O 符号中的顺序是什么?
最佳答案
在您可以直接访问页表并且它们以分层方式存储的系统上,memset
可以通过 O(log n)
实现用写入时复制引用替换整个虚拟地址映射到填充给定字节值的单个页面。但是请注意,如果您将来要对该对象进行任何修改,memset
的正常 O(n)
成本将被推迟到页面错误以实例化修改页面时单独复制页面。
关于C 中 memset 函数的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11663316/