您的位置:首页 > 其它

斐波那契数列的递归与非递归实现

2017-05-13 23:29 363 查看
非递归的时间复杂度为O(n)

#include <iostream>

using namespace std;

int Fib(size_t N)

{
int a1 = 0,
a2 = 1,
a3 = N;
if (N < 2)
return a3;

for (size_t idx = 2; idx <= N; idx++)
{
a3 = a1 + a2;
a1 = a2;
a2 = a3;
}
return a3;

}

递归的时间复杂度为O(n²)

int Fib1(size_t N)

{
if (N < 2)
return N;
else
return Fib1(N - 1) + Fib(N - 2);

}

int main()

{
cout << Fib(5) << endl;
cout << Fib1(5) << endl;
system("pause");
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  斐波那契数列