比較しないソートの作成
Posted feedbacks - Ruby
バケットソートって知らなかったのでやってみました。
でもこの実装だと要素作り直しててソートつーのかなんだか。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def bucket_sort(ary, min, max);
bucket = Array.new(max-min+1, 0)
ary.each{|num|
bucket[num-min]+=1
}
ret = []
bucket.each_with_index{|count, index|
ret += [index+min] * count
}
ret
end
ary = [-1,9,4,8,9,6,3,9,5,2]
p bucket_sort(ary, ary.min, ary.max)
|
こんなのでもいいのかな. マッチしたオブジェクトを格納するようなメソッドってなかったっけ.
1 2 3 4 5 6 | def main(min, max, num, ary)
[*min..max].map{|i| ary.select{|j| i == j}}.flatten
end
min, max, num = 1, 10, 10
p ary = num.times.map{(rand*(max-min)).round+min}
p main(min, max, num, ary)
|



sweetie089 #6628() Rating3/3=1.00
[ reply ]