数据结构之循环递归大战
循环与递归的区别:
循环是对一些语句的重复执行。 循环不会增大调用堆栈,无论循环执行了多少次。 循环与递归函数之间的一个重要区别是,循环使用迭代器来遍历循环,而递归函数必须对比结果才知道何时退出。
- 实例:用循环和递归分别实现斐波那契函数
// 循环
def fib(n):
a=0
b=1
for i in range(1,n+1):
b = a + b
a = b - a
return a
注意:利用循环求其时间复杂度为O(n)
// 递归
def fib(n):
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
切记:利用递归求索,一定要有限定条件