求程序运行时间的函数clock()以及 CLOCKS_PER_SEC与CLK_TCK的区别,用法

最近学习算法和数据结构
涉及到一个时间问题
要看程序运行所需的时间。
所以要用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;
}


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值