[アルゴリズム] 選択ソートの実装(Ruby編)

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

アルゴリズムプログラミングシリーズ第2弾の選択ソートの締めを飾るのはRuby言語です。
未だに馴染めないこの言語の原因が今回コーディングしてみて改めてよくわかりました。
この言語に慣れてしまうと、他の言語が触りづらくなる・・・と直感で感じています。
世の中のルバーの方、僕にこの言語の良さを教えてくれませんか?

ソースコード

結果

表示方法は二の次に考えるとして、とりあえず問題なさそうですね。

解説

前回も書いたのですが、rubyは繰り返し文が他の言語と全く書き方が違うため非常に扱いづらい印象です。
前回のバブルソートの時はwhileを使ったんですが、今回はstepという命令を使ってます。
任意の下層値から、上限値までの階段loopを行いたい場合、通常の言語ではfor文なのですが、rubyのfor文はPHPで言うところのforeachしか存在しないため、stepという独自の方式があるんだと思いますが、正直種類が増えて便利になるというという部分に使いづらさを感じてしまいますね。
まあ、言語避難はこの際やめておきますが、今回扱っている8言語で唯一loop処理で「continue」が使えないという事もわかりました。
Rubyでは繰り返し文の中で次の処理に飛ばす方法は「continue」ではなく「next」という事でした。
continueでは実行エラーになるので、要注意です。
あと、stepでも注意点があり、多言語の感覚でfor(i=0; i<10; i++)としたい場合、まずstep処理の構文は以下のようになっているようです。

[開始値].step(上限値 , 足し込む値(省くと1になる)) |[内部変数]|{

}

上限値が常に「以下」扱いである事を認識しておきましょう。なので、多言語的に書くと「for(i=0; i< =10; i++)」となるので、配列などの要素数を上限値にする場合は0スタートを考慮して上限値に「-1」を入れてあげる必要があるという事です。

関連リンク

選択ソート

解説
Javascript
PHP
Python
Shell
Awk
C言語
Go言語
Ruby

アルゴリズム過去記事

http://wordpress.ideacompo.com/?cat=562&tag=Algorithm

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です