- checkを呼ぶと、まず配列の中身が右の数字より大きいかチェックします。
- 右の数字が大きい場合はそのまま続行、小さい場合は並び替えメソッドb_sortが動きます。
- b_sortメソッドにはチェックした配列が渡されて、その中で1つ右の数字以上のものは数字を入れ替え、それ以外のものはそのままです。
- index番号が1からスタートしているので、配列のサイズと同じになるとすべての数字に対して処理が終わっている事となります。 その為、再度checkメソッドを呼んで配列の並びをチェックします。
- 再度checkメソッドで並びをチェックします。(この後は複数回1~5の繰り返しです。)
- 最後にcheckメソッドのindexが配列のサイズと一緒になるのはすべてが昇順に並び替えられている時だけだから、そのタイミングでretrunを使用して処理を終わらせます。
今回はバブルソートの考え方を落とし込んでやってみた。途中で頭がこんがらがってくるので、順に整理しながら実装した。結構難しかったし大変だった。
あくまでsortメソッド等の並び替えメソッドを使用しない体でやっているので、トレーニングにしかならないが 順を追って実装していくのは写経では身につかないのでいい勉強だった。生のRubyを書くのはこのようなメリットがあるしプログラミングやっている感があるので楽しい。
オブジェクト指向に沿って実装するほどの気力が残っていなかったので、そこは皆さんに意見をもらったり、時間がある時にリファクタリングしていこうと思う。