斐波那契数列的四种求法与时间复杂度测算
定义:什么是斐波那契数列?
了解了斐波那契数列的特性,又该如何求解呢?不同方法所消耗的时间又是多少呢?接下来就做详细解析!
方法一: 普通循环法计算
%%timeit # 用于测算时间,将下面的函数重复执行多次,求出其平均值
a ,b= 0,1
for i in range(20):# 求斐波那契数列的前20项,如果求100以内的斐波那契数列只需修改判断语句即可
a,b=b,a+b
print(b) #
>>>2.57 µs ± 226 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
方法二: 使用递归的方法
%%timeit
def fib(n):
if n<3:
return 1
return fib(n-1)+fib(n-2)
#或者
def fib(n):
return 1 if n <3 else fib(n-1)+fib(n-2) #三元表达式写法
fib(