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)