首页 > 代码库 > 从Fibonacci数组看迭代,生成器和循环的效率
从Fibonacci数组看迭代,生成器和循环的效率
通过Fibonacci的迭代,生成器,循环三种实现,观察迭代,生成器,循环的效率。
结论:迭代效率非常低,生成器和循环相近
一下是代码和运行时间
import sys
def fibo(n):
if n < 2: return 1
else: return fibo(n-1) + fibo(n-2)
n = int(sys.argv[1])
fibo(n)
结果:
n | 运行时间
10 0.01
30 0.3
35 3.0
import sys
def fibo(n):
if n < 2: return 1
f, f0, f1 = 1, 1, 1
while n > 1:
n -= 1
f = f0 + f1
f0 = f1
f1 = f
return f
n = int(sys.argv[1])
fibo(n)
结果:
n | 运行时间
10 0.01
100000 0.2
1000000 13
import sys
def fibo(n):
a, b = 1, 1
while n > 0:
yield a
a, b = b, a + b
n -= 1
n = int(sys.argv[1])
for i in fibo(n):
pass
结果:
n | 运行时间
10 0.01
100000 0.16
1000000 13.0
从Fibonacci数组看迭代,生成器和循环的效率
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。