社区
C++ 语言
帖子详情
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
welon123
2010-12-17 11:08:17
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
OJ提交时显示
...全文
1636
9
打赏
收藏
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS…… OJ提交时显示
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
西电小楠
2011-08-18
打赏
举报
回复
最后也没结果吗??
fantiyu
2010-12-18
打赏
举报
回复
to 6楼:你确定?你真的确定吗?你确定看过for循环在release下编译后的汇编代码?
fantiyu
2010-12-18
打赏
举报
回复
memset在32位cpu,未用到MMX之类指令集的时候,每次循环写入4字节
楼主的循环一次写几字节? 如果是1字节,那我一点都不惊讶
jackyjkchen
2010-12-18
打赏
举报
回复
如果你用release优化,基本上for循环会优化成memset
zenny_chen
2010-12-18
打赏
举报
回复
呵呵,复杂度当然还是O(n)。
你数组共有多少字节?能相差500ms?
就想叫yoko
2010-12-17
打赏
举报
回复
[Quote=引用 3 楼 arong1234 的回复:]
所谓的直接访问最后一个元素是什么意思?memset和循环设置每个元素貌似差别不了多少,你不会只设置了一个元素吧?
引用楼主 welon123 的回复:
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
OJ提交时显示
[/Quote]同问,你测也应该是测memset数组以及遍历数组赋值才对吧
arong1234
2010-12-17
打赏
举报
回复
所谓的直接访问最后一个元素是什么意思?memset和循环设置每个元素貌似差别不了多少,你不会只设置了一个元素吧?[Quote=引用楼主 welon123 的回复:]
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
OJ提交时显示
[/Quote]
luciferisnotsatan
2010-12-17
打赏
举报
回复
单步调试,跟进去看下。估计是直接用汇编写的。
最多就 N 吧
bluejays
2010-12-17
打赏
举报
回复
不知道他的时间复杂度是多少,只听说memset都是很牛的人写的,而且针对不同的cpu和系统都有优化,那性能绝对是相当的高
区间素数筛选与最小和求解:蓝桥杯国赛数论题解析
素数筛选是基础算法问题,其核心在于理解素数在自然数轴上的非均匀分布特性。埃氏筛法虽经典,但在大区间场景下面临内存超限与缓存失效双重瓶颈;区间筛法通过仅处理√R以内小素数并针对性标记目标区间,显著降低时空
复杂
度,成为工程实践中的最优选择。结合‘最小和’目标,需依托素数序列的严格递增性与重排不等式原理,采用边遍历边累加的贪心策略,避免冗余存储。该方法广泛应用于算法竞赛、密码学预处理及大数据质数统计等场景,本文以蓝桥杯国赛真题为载体,深入剖析区间筛实现细节、边界处理及性能优化要点。
高精度快速幂算法详解:从麦森数计算到C++工程实现
高精度计算是处理超出标准数据类型范围的超大整数运算的核心技术,其原理是通过
数组
或字符串模拟手工算术过程。在涉及幂运算的场景中,
直接
计算会导致指数级
复杂
度,因此需要结合快速幂算法,将计算
复杂
度从O(n)降至O(log n)。这种高精度快速幂的技术价值在于,它能高效求解诸如RSA加密、数论猜想验证等需要处理天文数字的工程与科学问题。一个经典的应用场景是计算麦森数(形如2^P-1的数)的特定位数。本文以洛谷P1045题为载体,深入剖析如何利用**万进制优化**和**截断乘法**,在C++中实现一个兼顾性能与可读性
匈牙利算法解析与HDU2063二分图最大匹配实现
二分图匹配是图论中的经典问题,指将图中顶点分为两个不相交集合,寻找连接这两个集合的最大边集。匈牙利算法作为解决二分图最大匹配的高效方法,通过寻找增广路径逐步扩大匹配,
时间
复杂
度为O(VE)。该算法在任务分配、资源调度等实际工程场景中有广泛应用,特别适合编程竞赛中的中等规模问题。以HDU2063相亲问题为例,展示了如何用邻接表建图并实现匈牙利算法,其中
时间
戳优化和顶点处理顺序等技巧能显著提升性能。理解匈牙利算法不仅能解决ACM竞赛问题,也为学习网络流等高级算法奠定基础。
Dijkstra与最短路算法:竞赛与应用全解析
最短路算法是图论中的核心问题,用于在带权图中寻找顶点间的最短路径。Dijkstra算法基于贪心策略,通过逐步扩展已知最短路径的顶点集合来求解单源最短路,其堆优化版本
时间
复杂
度为O(mlogn),适合处理稀疏图。Bellman-Ford和SPFA算法能处理含负权边的图,而Floyd算法则以O(n³)的
时间
复杂
度解决全源最短路问题。这些算法在编程竞赛和工程实践中都有广泛应用,如交通规划、网络路由等场景。掌握不同算法的适用场景和优化技巧,对于解决实际问题至关重要。
双端队列01BFS——从原理到实战:解锁边权0/1图的最优路径
本文深入解析双端队列01BFS算法,专为解决边权0/1图的最短路径问题而设计。通过对比Dijkstra算法,01BFS利用双端队列的O(1)操作将
时间
复杂
度降至O(m),显著提升性能。文章涵盖算法原理、正确性证明、实战案例(如迷宫探索、电路维修)及常见陷阱,帮助开发者高效解决特定场景下的路径优化问题。
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章