前提・実現したいこと
Rubyの配列をソートする「sort」メソッドで、
要素同士を比較するため「<=>」が使用されているとのことですが、
なぜ<=>が使用されることで、ソートされるのかが理解できません。
<=>の処理は、以下のようになることは理解しております。
1<=>2 =>-1 1<=>1 => 0 2<=>1 => 1
ただ、配列でsortを使用するとなった場合、以下の結果となると思います。
ここが理解できません。
[2,5,1,3,4,6].sort{|a,b| a<=>b} =>[1,2,3,4,5,6]
私が認識している処理順としては、
1. 配列の[0]2と[1]5が、ぞれぞれa、bに入る
2. 5が大きいので、-1が帰る
3. 次に[2]1と[3]3が、ぞれぞれa、bに入る
4. 3が大きいので、-1が帰る
・・・
上記の認識だとしても、
[1]と[3]はどちらも-1で返されているから
sort順として、同じ順番になってしまうと思っています。
試したこと
リファレンスや、書籍を読みましたが
書かれてる内容を理解できませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/30 01:34
2021/06/30 01:59 編集
2021/06/30 03:28
2021/06/30 05:03
2021/06/30 09:18 編集
2021/06/30 09:47 編集