测试函数运行时间


测试函数运行时间

时间就是金钱,效率就是生命!程序的好坏一定程度上取决于它的执行效率。

这是我在网上找到的一个通过函数测试函数执行时间的方法,这个应该是比较原始的,可能编译器也有这个功能了。但是深入去理解一些东西还是好的,我觉得这也是我要努力的方向。

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

猜你喜欢

转载自blog.csdn.net/weixin_44093867/article/details/104165778