斐波那契数列我写了四种实现方法:
第一种:递归实现
long long Fib(int n)//递归
{
if (n < 2)
{
return n;
}
return Fib(n - 1) + Fib(n - 2);
}
时间复杂度:O(2^n)
空间复杂度:O(n)
第二种:非递归实现
long long FibNouR(int n)//非递归
{
long long first = 0;
long long second = 1;
long long ret;
if (n < 2)
{
return n;
}
else
{
for (size_t i = 0; i < n; ++i)
{
ret = first + second;
first = second;
second = ret;
}
return ret;
}
}
时间复杂度:O(n)
空间复杂度:O(1)
第三种:数组实现<