码迷,mamicode.com
首页 > 其他好文 > 详细

从Fibonacci数组看迭代,生成器和循环的效率

时间:2014-09-20 03:34:16      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:ar   for   sp   代码   on   c   时间   ef   r   

通过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数组看迭代,生成器和循环的效率

标签:ar   for   sp   代码   on   c   时间   ef   r   

原文地址:http://www.cnblogs.com/zy001/p/3982806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!