(数据结构)没事瞎测测
因为只是留个影响的瞎测,没有多次测试取平均,没有各种数学的合理估计方法,亦没有对电脑性能和编译器和对环境巴拉巴拉的严格限制。
重申:只是瞎测
没有声明都是不开O2优化和inline
int solve(){
for(int i = 1;i<10000;i++){
for(int j = 1;j<10000;j++)
in[i][j] = i * j + 233;
}
cout<<"HELLO WORLD";
}
Run Time: 0.29s
//遍历顺序相反
int solve(){
for(int j = 1;j<10000;j++){
for(int i = 1;i<10000;i++)
in[i][j] = i * j + 233;
}
cout<<"HELLO WORLD";
}
Run Time: 0.682s
//在一个声明了int但是没有返回值同时主函数也没有调用其返回值
//正常的时候是能跑的
//开启氧气优化之后
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
int in[10000][10000];
int solve(){
for(int j = 1;j<10000;j++){
for(int i = 1;i<10000;i++)
in[i][j] = i * j + 233;
}
cout<<"HELLO WORLD";
}
//他炸了
Process finished with exit code -1073741819 (0xC0000005)
//但是。。。又跑了一遍他又好了。。。
Run Time: 0.125s
//看来炸不炸看心情,但是代码必须写准确了
int in[10000][10000];
void solve(){
for(int j = 1;j<10000;j++){
for(int i = 1;i<10000;i++)
in[i][j] = i * j + 233;
}
cout<<"HELLO WORLD";
}
反序
Run Time: 0.72s
开启氧气优化之后
Run Time: 0.125s
int solve(){
for(int i = 1;i<10000;i++){
for(int j = 1;j<10000;j++)
in[i][j] = i * j + 233;
}
cout<<"HELLO WORLD";
}
正序
Run Time: 0.298s
吸氧
Run Time: 0.115s
//明显在代码问题比较大的时候优化幅度更加大
//读入一百万个数字
int读入
void solve(){
int t;
for(int i = 1;i<=1000000;i++)
scanf("%d",&t);
cout<<"HELLO WORLD"<<endl;
}
Run Time: 0.584s
cin读入
void solve(){
int t;
for(int i = 1;i<=1000000;i++)
cin>>t;
cout<<"HELLO WORLD"<<endl;
}
//不应该啊。。。这是为什么?
Run Time: 0.369s
ll读入
void solve(){
int t;
for(int i = 1;i<=1000000;i++)
scanf("%lld",&t);
cout<<"HELLO WORLD"<<endl;
}
Run Time: 2.659s
五倍常数,没事别开ll
快读
inline ll read(){
ll res=0;
bool zf=0;
char c;
while(((c=getchar())<'0'||c>'9')&&c!='-');
if(c=='-')zf=1;
else res=c-'0';
while((c=getchar())>='0'&&c<='9')res=(res<<3)+(res<<1)+c-'0';
if(zf)return -res;
return res;
}
Run Time: 0.22s
同样是读ll花了scanf的1/10的时间
在vector后面插入数字
十万
void solve(){
vector<int> test;
for(int i = 1;i<=100000;i++)
test.push_back(233);
cout<<"HELLO WORLD"<<endl;
}
Run Time: 0.001s
Run Time: 0.001s
Run Time: 0.002s
一百万
void solve(){
vector<int> test;
for(int i = 1;i<=1000000;i++)
test.push_back(233);
cout<<"HELLO WORLD"<<endl;
}
Run Time: 0.026s
Run Time: 0.016s
Test 1 Run Time: 0.013s
一千万
Test 1 Run Time: 0.15s
Test 1 Run Time: 0.17s
Test 1 Run Time: 0.159s
一亿
Run Time: 1.474s
Run Time: 1.445s
Run Time: 1.448s
十亿
Run Time: 14.367s
突然出大问题!先咕了,随时间补全。
???????????????????????????????????????????