斐波那契数列的算法实现
法一:递归方法
/*
斐波那契数列: n:0 1 2 3 4 5 6 7
对应斐波那契值: 0 1 1 2 3 5 8 13
*/
//递归方法 时间复杂度:O(2^n)
public static int fib(int n){
if (n<=1){
return n;
}
return fib(n-1)+fib(n-2);
}
递归法时间复杂度分析
时间复杂度:O(2^n) 时间复杂度较大不建议使用
法二:使用for循环
//使用for循环 时间复杂度:O(n)
public static int fib2(int n){
if (n<=1){
return n;
}
int first = 0;
int second = 1;
for (int i = 0; i < n-1 ; i++) {
int sum = first + second;
first = second;
second = sum;
}
return second;
}
时间复杂度:O(n)