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

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



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。
我自己给我的建议是,多看文档,少走弯路~。
------解决方案--------------------
过来看看,向八神学习,呵呵!
------解决方案--------------------
不懂ruby的飘过