测试函数运行时间
时间就是金钱,效率就是生命!程序的好坏一定程度上取决于它的执行效率。
这是我在网上找到的一个通过函数测试函数执行时间的方法,这个应该是比较原始的,可能编译器也有这个功能了。但是深入去理解一些东西还是好的,我觉得这也是我要努力的方向。
demo
clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。
常数CLK_TCK:机器时钟每秒所走的时钟打点数。
程序
#include <iostream>
#include <time.h>
using namespace std;
clock_t start, stop;//clock_t是clock()函数返回的变量类型
double duration;//记录函数运行时间,以秒为单位
void PrintN(int N) {
//不在测试范围内的准备工作写在clock()调用之前
void PrintN(int N) {
if (N) {
PrintN(N - 1);
cout << N << endl;
}
return;
}
int main() {
int N;
cin >> N;
start = clock();
PrintN(N);
stop = clock();
duration = ((double)(stop - start)) / CLK_TCK;
cout << duration << endl;
/*其他不在测试范围的处理写在后面,例如输出duration*/
return 0;
}
这是一个递归程序,经测试递归程序略慢于普通的循环,而且当N大于等于100000时递归程序崩溃了,栈溢出了。
因此尽管递归有它的优点,但选择递归时要慎重。
欢迎访问个人博客:suzhigao66.top