斐波那契的递归实现:
public int fbi(int i) {
if (i < 2) {
return i <= 0 ? 0 : 1;
}
return fbi(i - 1) + fbi(i - 2);
}
斐波那契的迭代实现:
public int fbi(int i) {
if (i < 2) {
return i <= 0 ? 0 : 1;
}
int index = 2;
int a = 0;
int b = 1;
int ret = 0;
while (index <= i) {
ret = a + b;
a = b;
b = ret;
index++;
}
return ret;
}
实际运行的时候,发现递归实现的效率惊人的低。
大量使用递归,需要消耗大量的内存占用和时间。
网友评论