学習機会があったので、Rubyのソートアルゴリズムについて記事に書いておこうと思います!
ソートアルゴリズムとは
アルゴリズムの中で最も基本的なものが「ソート(整理、並べ替え)」です。
データベースをはじめ、大量のデータを扱う機会は少なくありません。その際に、データを昇順、降順など、一定の規則に従って整列させる必要があります。そのための技術がソートアルゴリズムです。
代表的なソートアルゴリズムとして知られるひとつ「バブルソート」を書き残しておきます。
全体コードから見て行きましょう
def bubble_sort(nums)
# 要素数10件
len_nums = nums.size
# limitが左にずれていく繰り返し処理
for i in 0..(len_nums - 1)
# limitに辿り着くまで隣同士の数値の比較を行う
for j in 0..(len_nums - 2 - i)
# 左の数値が大きかったら
if nums[j] > nums[j + 1]
# 左の数値を右に、右の数値を左に入れ替える
nums[j], nums[j + 1] = nums[j + 1], nums[j]
end
# endなので次の隣通しの比較を行う
end
# endなのでlimitが左にずれる
end
return nums
end
# main
nums = [10, 8, 3, 5, 2, 4, 11, 18, 20, 33]
puts bubble_sort(nums)
要は[10, 8, 3, 5, 2, 4, 11, 18, 20, 33]
の配列昇順にならびかえています。
Rubyにはsort
という便利なめそっどがあるので、
nums.sort
ってやっちゃえば一発でできちゃうのですが。
どうゆう処理されてんねんてのが上のコードになります!!
自分用メモなので短くてすみません!! それでは!