概念
在分析斐波那契数各个算法的时间复杂度和空间复杂度前,我们先概述下概念
- 斐波那契数:斐波那契数列指的是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))。
算法分析
递归算法
long fibonacci::fibonacci1(int n) {
if (n < 3) {
return 1;
}
return