Rubyでバブルソートを書く
バブルソートって何?
隣あう二つの数字を比較し、並びかえをこなうアルゴリズム。
大きな数字は右側にソートされていく。
sortメソッドでも同じことができる。
サンプルコード
# こちらがバブルソート
def bubble(ary)
ary.length.times do |i|
(ary.length-(i+1)).times do |k|
if ary[k] > ary[k+1]
ary[k],ary[k+1] = ary[k+1],ary[k]
end
end
end
end
bubble = [657,123,2,89]
bubble(bubble)
p bubble
# sortメソットの場合
a = [657,123,2,89]
p a.sort
【出力結果】
[2, 89, 123, 657]
[2, 89, 123, 657]
どちらも同じ結果を出力することができる。
バブルソートでは、timesメソッドで繰り返し回数を決めた後、
隣あう要素を取り出し、数が大きい方を右側にソートする と言う手順を繰り返して
全体のソートを行う。