2020/9/17
时间复杂度
时间复杂度指算法中基本运算的频度,即某条语句在算法中被重复执行的次数。
例如:i=i*2表示2的 i 次方小于等于n
方法:找出主体语句(即while或for语句)中与T(n)成正比的循环变量,得到执行次数t,小于等于n
递归程序:T(n)=1+T(n-1)=n-1+T(1),T(n)=O(n)
斐波那契数列
递归:一个函数内部调用这个函数自身
public class Solution {
public int Fibonacci(int n) {
if(n==0){
return 0;
}
if(n==1||(n==2)){
return 1;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
非递归
public int Fibonacci(int n) {
int number[] = {0, 1};
if (n<2){
return number[n];
}
int one = number[0];
int two = number[1];
int sum = 0;
for(int i=2;i<=n;i++){
sum = one+two;
one = two;
two = sum;
}
return sum;
}
空间复杂度
算法所耗费的存储空间