通过使用vc中Windows.h头文件里的GetTickCount()函数,我们可以较为准确的估算出目标程序片段运行所需要的时间(ms)。
GetTickcount函数原型:DWORD GetTickCount(void);
这里我们以求解Fibonacci数列的两种算法(递归算法和迭代算法)效率对比为例进行说明:
#include <iostream>
#include <Windows.h>
using namespace std;
long long Fibonacci_Recursive(int n); //求解Fibonacci数列的递归算法
long long Fibonacci_Iterative(int n); //求解Fibonacci数列的迭代算法
int main(){
while (1){
int n;
cout << "请输入n: ";
cin >> n;
long long t3 = GetTickCount(); //精度到ms级;可以用GetTickCount64()代替,区别详见定义;
long long result2 = Fibonacci_Iterative(n);
long long t4 = GetTickCount();
long long rt2 = t4 - t3;
cout << "Fibonacc