基本的なアルゴリズムの勉強と共に、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]