设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 沉影不器
打印 上一主题 下一主题

[RMVX发布] [FSL]Class版二叉堆(2010-09-23 更新)

[复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

11
 楼主| 发表于 2010-9-23 22:10:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
12
发表于 2010-9-24 07:19:27 | 只看该作者
本帖最后由 紫苏 于 2010-9-24 07:29 编辑

嗯,是 C 写的
不知 unshift 你是怎么测的?九楼那样测一次能看出来的话,反而不正常了,可以这样测:
  1. DATA = 10000

  2. a=[]
  3. DATA.times { |i| a << i }
  4. b=[1]

  5. t1=Time.now
  6. DATA.times { a.unshift(0) }
  7. p Time.now-t1

  8. t2=Time.now
  9. DATA.times { b.unshift(0) }
  10. p Time.now-t2
复制代码
一万以内都有明显的差别

-------------------

传递块那个其实是在搞函数式编程时养成习惯了 = = 实际上会影响效率的,因为 Ruby 块符合闭包的上下文绑定特性,这是个昂贵的过程。如果用默认传递的块(即不使用 & 保存到参数,使得块只能对当前方法的局部上下文起作用)的话会好一点

汗,打到这里才想起可以传递 Method 对象,因为没有绑定……但用起来自然是没有块惬意了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 12:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表