Rubyでバブルソート

基本的なアルゴリズムの勉強と共に、Rubyで書いてみる。

バブルソートの概要

バブルソートは隣あう値を比較して要素をソートする整列アルゴリズム。
計算対象の数がn個なら、n(n-1)/2 回の計算が発生する。

サンプルプログラム

def bubble_sort(ary)
  len = ary.length

  (1..len).each do |i| 
    (1..(len-i)).each do |jx| 
      jy = jx - 1 
      if ary[jy] > ary[jx]
        temp = ary[jy]
        ary[jy] = ary[jx]
        ary[jx] = temp
      end 
    end 
  end 
  return ary 
end

number = [*1..5].shuffle
p number        # => [3, 2, 5, 4, 1]
p bubble_sort(number) # => [1, 2, 3, 4, 5]

参考

Rubyで各種ソートアルゴリズム

バブルソート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

18 + 5 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください