文系でもプログラマーになりたい!

文系プログラマー(になりたい人)のメモです。現在、プログラミングスクールで学習中。WEBエンジニアへの転職目指して活動中です!

Rubyでバブルソートを書く

学習備忘録、今回は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メソッドで繰り返し回数を決めた後、

隣あう要素を取り出し、数が大きい方を右側にソートする と言う手順を繰り返して

全体のソートを行う。

参考にさせていただいたサイト

https://qiita.com/RyumaRyama/items/6753bf32d435f74690be

https://programming-beginner-zeroichi.jp/articles/286