- 编程
学术问题
- @ 2025-7-10 19:59:12
为什么 比 循环更吃时间?
2 条评论
-
@ 2025-7-10 20:34:09memset 6个字符,而 for 3个字符,6>3 (我因为这个WA了两发)
- 1
在百万级数据量测试中,
memset的执行时间仅为手动for循环的 40%∼50%,主要得益于底层汇编优化和硬件指令加速。——来源于百度
但是呢,根据你写的 memset(b, 0, sizeof b); ,容易注意到你 memset 的范围是整个 b 数组 为 $O(T \times \max(N)) = O(10^{5} \times 10^{5}) = O(10^{10})$ ,但是你写的 for (int i = 1; i <= n; i++) 的时间复杂度为 O(∑N)=O(106) (输入保证所有测试用例的 N 之和不超过 106)。