如果您在Python中使用一个带记忆的fibonacci函数,您将看到它变得更快:import time

beg = time.clock()

def memoize(f):

cache = {}

def decorated_function(*args):

if args in cache:

return cache[args]

else:

cache[args] = f(*args)

return cache[args]

return decorated_function

@memoize

def fib(n):

if n <=2:

return 1

return fib(n-2) + fib(n-1)

var = fib(35)

end = time.clock()

print(var)

print(end - beg)

在javascript中也可以这样做:function memoize( fn ) {

return function () {

var args = Array.prototype.slice.call(arguments),

hash = "",

i = args.length;

currentArg = null;

while (i--) {

currentArg = args[i];

hash += (currentArg === Object(currentArg)) ?

JSON.stringify(currentArg) : currentArg;

fn.memoize || (fn.memoize = {});

}

return (hash in fn.memoize) ? fn.memoize[hash] :

fn.memoize[hash] = fn.apply(this, args);

};

}

var beg = new Date().getTime();

function fib(n)

{

if (n <= 2)

return 1;

return fib(n-2) + fib(n-1);

}

var f = memoize(fib)(35);

var end = new Date().getTime();

console.log(f);

console.log(end - beg);

看起来javascript方面没有性能改进,这往往表明这里已经内置了某种记忆机制。

node python 速度_为什么python在递归上比node.js慢得多相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  3. python寻路_【PYTHON】a-start寻路算法

    本文章适合黄金段位的LOL大神,同样更适合出门在外没有导航,就找不到家的孩子. 在英雄联盟之中,当你和你的队友都苦苦修炼到十八级的时候,仍然与敌方阵营不分胜负,就在你刚买好装备已经神装的时候,你看见信 ...

  4. 黑马程序员python笔记_三年Python程序员平时学习笔记总结,对于学习Python非常有帮助...

    一.可迭代对象.迭代器对象和生成器 像list, tuple等这些序列是可以使用for...in ...语句来进行遍历输出的.这是为什么呢?这就需要知道可迭代对象(Iterable).迭代器对象(It ...

  5. python打字_使用Python编写打字训练小程序

    你眼中的程序猿 别人眼中的程序猿,是什么样子?打字如飞,各种炫酷的页面切换,一个个好似黑客般的网站破解.可现实呢? 二指禅的敲键盘,写一行代码,查半天百度-那么如何能让我们从外表上变得更像一个程序猿呢 ...

  6. 类的继承python事例_【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸...

    作者:白宁超 2016年10月10日22:36:57 摘要:继一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简 ...

  7. python 单元测试_聊聊 Python 的单元测试框架(一):unittest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...

  8. python 速度 memmap_浅析Python 读取图像文件的性能对比

    浅析Python 读取图像文件的性能对比 发布时间:2020-08-30 16:31:06 来源:脚本之家 阅读:57 作者:BriFuture''s Blog 使用 Python 读取一个保存在本地 ...

  9. python链表_使用python实现链表操作

    一.概念梳理 链表是计算机科学里面应用应用最广泛的数据结构之一.它是最简单的数据结构之一,同时也是比较高阶的数据结构(例如棧.环形缓冲和队列) 简单的说,一个列表就是单数据通过索引集合在一起.在C里面 ...

最新文章

  1. 怎么剪切一段音乐其中的片段
  2. 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
  3. OS study plan
  4. Nginx搭建flv视频点播服务器
  5. java你可能不知道的事(2)--堆和栈
  6. 深度学习笔记(22) Padding
  7. Swiper学习之一---入门:swiper相关文件、swiper代码结构和样式、初始化Swiper
  8. VB手控Combobox的打开或收起
  9. io读两个文件,生成list 排重后写本地文件(Java)
  10. C#控制台程序套壳打开EXCEL并强制启用宏
  11. 去掉vue中万恶的eslint
  12. 牛客小白月赛21 I.I love you
  13. 相机光学(十一)——镜头
  14. Rose Blumki
  15. 在线课程开放平台API分析及脚本制作(一)
  16. TCP粘包问题以及解决方法
  17. python爬取图片并保存到本地
  18. verilog将100mhz分频为1hz_50m 分频器设计——50MHZ(含verilog程序)
  19. Python中的套接字编程
  20. PageAdmin文章采集-自动批量文章采集发布

热门文章

  1. 使用阿里云CentOS安装LAMP时,安装PHP扩展需要注意的事情
  2. python hdfs初体验
  3. C#操作Sqlite快速入门及相关工具收集
  4. 前端工程师系列,TCP复习及浓缩总结(全干货,支持面试)
  5. 《Pro ASP.NET MVC 3 Framework》学习笔记之二十七【视图1】
  6. spring 深入reading
  7. 重磅 |“金砖”电商报告:5年后金砖五国网络零售将超3万亿美元
  8. 20161228阅读笔记
  9. maven整合S2SH
  10. .NET中判断国内IP和国外IP