斐波那契数的时间复杂度、空间复杂度详解


斐波那契数:斐波那契数列指的是1、1、2、3、5、8、13、21、······这样一个数列,我们可以发现它后面的一个数是前两个数之和。而在这个数列中的数就被称为斐波那契数。

时间复杂度:时间复杂度实际就是一个函数,该函数计算的是执行基本操作的次数。

时间复杂度的O渐进表示:算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化时,算法执行次数T(N)的增长速率和f(N)的增长速率相同。则有T(N) =O(f(N)),称O(f(N))为时间复杂度的O渐进表示法。

空间复杂度:类似于算法的时间复杂度,它是算法所需存储空间的度量,记作S(n)=O(f(n))。

接下来就讨论一下斐波那契数的相关问题
用C语言实现:求第N个斐波那契数
这里可以采用递归、循环、尾递归三种方法来解决

方法一:递归
#include<stdio.h>
#include<stdlib.h>
long long Fib(long long N)
{
  if (N < 3)    //当N<3时,斐波那契数为1
  return 1;
  return Fib(N - 1) + Fib(N - 2);//函数递归
}
int main()
{
  int n = 0;
   scanf("%d",&n);
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值