Rubyで挿入ソートを書いてみた
はじめに
Rubyにはsortメソッドがありますが、あえて使わずに挿入ソート(昇順)のロジックを書いてみました。
挿入ソートについて
実際のコード
def sort(array) size = array.size #最初の要素を固定し、(要素数 - 1)回まわす。 (1..(size - 1)).each do |i| while i > 0 && array[i - 1] > array[i] # 要素を入れ替える。 [3, 1] => [1, 3] array[i - 1], array[i] = array[i], array[i - 1] # i - 1 し、whileの条件式を満たさなくなるまで繰り返す。 i -= 1 end end puts array.join(' ') end array = Array.new(rand 10) { rand 100 } sort(array)