时间就是金钱,效率就是生命!程序的好坏一定程度上取决于它的执行效率。
这是我在网上找到的一个通过函数测试函数执行时间的方法,这个应该是比较原始的,可能编译器也有这个功能了。但是深入去理解一些东西还是好的,我觉得这也是我要努力的方向。
demo
1 2
| clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。 常数CLK_TCK:机器时钟每秒所走的时钟打点数。
|
程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <iostream> #include <time.h>
using namespace std;
clock_t start, stop; double duration;
void PrintN(int N) { 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;
return 0; }
|
这是一个递归程序,经测试递归程序略慢于普通的循环,而且当N大于等于100000时递归程序崩溃了,栈溢出了。
因此尽管递归有它的优点,但选择递归时要慎重。