読者です 読者をやめる 読者になる 読者になる

FLYING

〈全日本・紀文豆乳飲料シリーズ「麦芽コーヒー」の500ミリリットルパックを扱う小売店が少ないことに遺憾の意を表明する会〉活動記録

mergesort

ruby

マージソート童貞卒業した。

def mergesort(array)
	array.size <= 1 ? array : merge(mergesort(array[0...array.size/2]), mergesort(array[array.size/2...array.size]))
end

def merge(left, right)
	array = []
	array.push(left.first <= right.first ? left.shift : right.shift) while !left.empty? && !right.empty?
	array + (!left.empty? ? left : right)
end

p mergesort Array.new(10) {|i| rand(100) }

Rubyならmerge3行mergesort1行で書けるよ」って言われたので書いたんだけどあんまりRubyっぽくない。