最近学习算法和数据结构
涉及到一个时间问题
要看程序运行所需的时间。
所以要用clock()函数
time.h的头文件
但是这个函数,单位不是s,咱的时间是s
所以要除以个CLOCKS_PER_SEC
这个表示一秒钟内CPU运行的时钟周期数(时钟计时单元)
百度百科是这么说的
这两个有什么区别
最新VS2019的说法
我们用的时候只需要,会用就行
下面是是例子:
#include<iostream>
#include<time.h>
using namespace std;
int main(){
const int MOD=1000000;
int n,s=0;
cin>>n;
int f=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
f=(f*j)%MOD;
} s=(s+f)%MOD; f=1;
}
cout<<s<<endl;
cout<<(double)clock()/CLOCKS_PER_SEC<<endl;2
return 0;
}
如果要看程序运行时间要在命令行里运行可执行程序,否则这个时间会算上你的输入时间
在命令行中输入echo 20|(可执行文件的路径)
你也可以定义两个变量标志,来计算部分程序的所用时间
这次记录在输出结果之前的时间
#include<iostream>
#include<time.h>
using namespace std;
clock_t start ,stop;
//clock_t是clock()函数返回的变量类型
int main(){
start=clock();//开始计时
const int MOD=1000000;
int n,s=0;
cin>>n;
int f=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
f=(f*j)%MOD;
} s=(s+f)%MOD; f=1;
}
stop=clock();//停止计时
cout<<s<<endl;
cout<<(double)(stop-start)/CLOCKS_PER_SEC<<endl;
return 0;
}