Sortメソッドについてまとめます
Rubyを学習中にソートする機会があったので、備忘録として投稿します。
ソートとは?
特定のルールに従ってデータを並べること。
たとえば?
たとえば
- 数字を大きい(小さい)順に並べる
- 名前を五十音順に並べる
- Qiitaの記事を古い(新しい)順に並べる
などがあります。
学生時代の「背の順」や「出席番号順」といった懐かしいものもありますね。
sortメソッド
配列の内容をソートするメソッド。
Array#sortのドキュメントによるとによると
ブロックとともに呼び出された時には、要素同士の比較をブロックを用いて行います。ブロックに2つの要素を引数として与えて評価し、その結果で比較します。ブロックは <=> 演算子と同様に整数を返すことが期待されています。つまり、ブロックは第1引数が大きいなら正の整数、両者が等しいなら0、そして第1引数の方が小さいなら負の整数を返さなければいけません。両者を比較できない時は nil を返します。
とのこと。
基本構文
sortメソッドは配列やハッシュに対して使うことができます。
配列.sort
ハッシュ.sort
返り値は特定のルールに従って並び替えた新たに生成された配列です。
実際に書いてみる
irb(main):001:0 > [3, 1, 2, 6, 9, 4].sort
=> [1, 2, 3, 4, 6, 9] # デフォルトでは昇順に並び替えられる
こんなプログラムを書くときに使える
3つの整数を読み込み、それらを値が小さい順に並べて出力するプログラム
puts gets.split(" ").map(&:to_i).sort.join(" ")
# 4 9 3
# => 3 4 9
参考にした情報