算法学习笔记(一)
什么是斐波那契数列,1,1,2,3,5,8,13...这样一个数列就是斐波那契数列,求第n项的值。
直接上代码
第一种,递归n次,时间复杂度O(2^n)
public static int fib1(int n) {
if (n <= 1)
return 0;
return fib1(n - 1) + fib1(n - 2);
}
第二种,从左到右顺序的求出每一项的值,再用临时变量保存
public static int fib2(int n) {
if (n <= 1)
return 0;
int one = 0;
int two = 1;
for (int i = 0; i < n; i++) {
int sum = one + two;
one = two;
two = sum;
}
return two;
}
当N=45输出结果
【fb1】
耗时:4172952000纳秒
【fb2】
耗时:5600纳秒
参考: