社区
C++ 语言
帖子详情
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
welon123
2010-12-17 11:08:17
memset的时间复杂度是多少?用for,和用这个初始化数组,直接访问最后一个元素,时间差了500MS……
OJ提交时显示
...全文
1314
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和系统都有优化,那性能绝对是相当的高
smoj2828子
数组
有主元素
题面 一个
数组
B,如果有其中一
个元素
出现的次数大于length(B) div 2,那么该元素就是
数组
B的主元素,显然
数组
B最多只有1个主元素,因为
数组
B有主元素,所以被称为“优美的”。 给出
数组
A[0..n-1],问
数组
A有多少个“优美的”子
数组
。
数组
A的子
数组
是由
数组
A的连续若干
个元素
构成的
数组
。
数组
A不是
直接
给出的,而是通过如下公式自动产生的: for i = 0 to n-1 do {...
[差分] aw3729. 改变
数组
元素(差分+区间合并+好题)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:3729. 改变
数组
元素 相关:[区间合并+模板] 区间合并模板(贪心+区间问题) 2. 题目解析 很明显的区间合并问题,但是可以使用差分来做,需要稍作改动。抽象算法的能力可能是最为缺失的。 区间合并: 区间合并时间是 O(nlogn)O(nlogn)O(nlogn),是取决于排序的
时间复杂度
。 相当于将一个区间 [l,r][l, r][l,r] 的数字全部赋值为 1。
最后
将这些区间合并即可,区间中的数字全为 1。 差分: 由区间合并的
树状
数组
和ST表
树状树状 功能 优化 单点修改,区间查询的
时间复杂度
,使得二者的
时间复杂度
优化为O(logn) 思想 树状
数组
tr中存储原
数组
某一特定长度区间内的信息(一般为区间和).采取的策略是 二进制拆分.从二进制的视角去分割
数组
元素,并以lowbit(x)作为二进制下新的索引(其实一看图就会了) 实现 // 动态
数组
的区间查询,单点修改 #include<bits/stdc++.h> using namespace std; const int N = 5e4 + 10; int tr[N], n;
寒假笔记·线段树与树状
数组
线段树与树状
数组
线段树和树状
数组
,是两个十分相似的数据结构。他们能使对一个区间的数修改以及查询的速度提升许多。两个结构本质相同,各有优缺点。 线段树 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,
时间复杂度
为O(logN)。 比如讲一个有4个数的线段树,是长这个样子的: ...
树状
数组
的基本操作
一、单点修改区间查询 题目描述:给出一个长度为n的序列,有m个操作,分别为询问[l,r]的区间和,和将x位置上的值增加C。 思路:可以使用线性
数组
进行操作,对于每一次询问,修改的
时间复杂度
为O(1),询问的
时间复杂度
为O(n)。如果数量n较大,这种操作必定会超时,所以我们尝试用前缀和来维护这个
数组
。使用前缀和的方法,明显可以看出来,在每一次询问中,查询的
时间复杂度
为O(1),修改的
时间复杂度
为O(...
C++ 语言
64,646
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章