自己实现了一个Ruby的组合算法,写到一半,发现Ruby的Array类支持。

healer_kx 2011-05-23 12:31:47



class Array
def make_array
arr = []
self.each{|i| arr.insert -1, [i]}
arr
end

def make_array2(e)
self.each{|i| i.insert -1, e}
end
end

def combine(array, size)
return [ array ] if array.size == size
return array.make_array if size == 1
last = array[-1]
left = array - [ last ]
a = combine(left, size - 1).make_array2(last)
b = combine(left, size)
return a + b
end

p combine(%w{ a b c d e}, 4)
p combine(%w{ a b c d e}, 3)
p combine(%w{ a b c d e}, 2)
p combine(%w{ a b c d e}, 1)




不过还是希望高手提提意见,关于效率,关于风格什么的。任何建议都OK。
我自己给我的建议是,多看文档,少走弯路~。
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小绵羊 2011-05-23
  • 打赏
  • 举报
回复
不懂ruby的飘过
pmars 2011-05-23
  • 打赏
  • 举报
回复
过来看看,向八神学习,呵呵!

2,763

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ruby/Rails
社区管理员
  • Ruby/Rails社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧