前几天看了麻省理工的一套开放课程,《计算机科学与编程导论》,全套24讲,以python为工具,讲解了编程的一些基本思想和方法,讲的比较浅,适合没有任何基础的人(python对于没有编程语言基础的人来说是个很好的工具)。后边几讲还没有看,但从前边大概20课来看,真的很不错,认真看一看,就算对你的设计算法的能力没有多大提高(课程中讲得背包问题,搜索问题和哈希问题还是有启发的),至少对英语水平肯定有帮助,而且同时还可以对python起到一个入门的作用。

例如这个斐波那契级数的递归版实现,就是利用了python中的字典数据结构充当缓存,提高效率(当然斐波那契要用迭代,这里只是个例子)

#a fast version fib
def fastfib(memory,n):
    if not n in memory:
        memory[n] = fastfib(memory,n-1)+fastfib(memory,n-2)
    return memory[n]

def fib(n):
    memory={0:1,1:1}
    return fastfib(memory,n)

地图图片

无觅相关文章插件,快速提升流量

    分享到:
 » 订阅本站:skyleft
 » 版权声明:本文采用 BY-NC-SA 协议进行授权 (C) 转载请保留链接地址并注明转自:【最博客