我用了一个一维数组来缓冲暂存深度搜索时的数列的各个值,哪么只要搜索一遍就可以了。
不用再做无用功,继续在算一遍了。请大家多多指教,只是时间和效率上的测试,我不太会用,
只是简单的测试了一下,不太好,请大家多批评指正,呵呵。
下面是源代码,在dev-cpp下通过。
//TIME.h
class CTime
{
private:
LARGE_INTEGER StartCount;
LARGE_INTEGER CurrentCount;
LARGE_INTEGER Frequency;
public:
CTime();
void Start();
void End();
void ShowResult();
};
//cuo70.cpp
/*参考了网上的一些测试时间的做法,在此感谢。忘了网址了,不好意思:-)*/
#include <iostream>
#include <windows.h>
#include "TIME.h"
using namespace std;
CTime::CTime()
{QueryPerformanceFrequency(&Frequency);}
void CTime::Start()
{QueryPerformanceCounter(&StartCount);}
void CTime::End()
{QueryPerformanceFrequency(¤tCount);}
void CTime::ShowResult()
{cout << double(CurrentCount.LowPart - StartCount.LowPart) / (double)Frequency.LowPart;}
//cuo8.cpp
#include <iostream>
#include <windows.h>
#include "TIME.h"
using namespace std;
int F(int);
int main ()
{
int max = 33;
CTime count_time;
count_time.Start();
cout << F(max) << endl;
count_time.End();
count_time.ShowResult();
system("pause");
return 0;
}
int F(int n)
{
if (n == 0) return 1;
if (n == 1) return 1;
if (n > 1) return F(n-1)+F(n-2);
}
大家放到一个工程里编译一下就好了。呵呵。