斐波那契数
使用递归:
public static int fib(int n){
if(n<=1) return n;
return fib(n-1)+fib(n-2);
}
不足:存在性能问题当超过64就算不出来了
改进方法:
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个相同类型元素的有限序列
数组是一种线性存储的线性表