[アルゴリズム] マージソートのプログラミング(Ruby編)

stock-exchange-913956_1280
LINEで送る
Share on GREE
Share on LinkedIn

Ruby言語とPython言語は、コーディングした見た目が誰が書いても分かりやすいと聞くが、いままでそれは、言語的に遊びがないからだと思っていた。
確かにインデントなどの扱いでエラーになる言語なので、単純にインデントだけの話だと思っていたが、今回のプログラムを書いて気がついたのだが、
ものの10分程度で完了できた。
基本的にはPHPプログラムのローカライズをしただけなのだが、関数や変数、その他の処理など、そのまま移していくことでほとんどエラーも出ずに完了できた。
そして、コーディングもほぼブレがなく、誰が書いても大体同じという事なのだろう。
C言語やshellなどと違いこんなに早く終わったので、拍子抜けではあるが、とりあえず今回はこんな感じ。

ソースコード

実行

解説

rubyの小数点切り捨て、四捨五入

切り捨ては@.floorで行える。
四捨五入は、0.5を足した後、@.floorすればいい

配列の要素数(length)

ruby言語は、javascriptのprototypeのような扱いで行えるのが非常に分かりやすい。

配列の追加(push)

配列の先頭を抜き出す(破壊的処理:shift)

hogeに先頭の値が入り、arrは先頭を抜かした残りの配列になる(要素数が一つ減る)

配列の特定部分の抜き出し(slice)

startは配列の要素番号(0スタート)で、countは○文字分になる。
今回のプログラム内では、中間値が要素数で取得しているので、+1をすることで、対応している。

関連リンク

マージソート記事

解説
JavaScript
PHP
Python
Shell
AWK
C言語
Go言語
Ruby

アルゴリズム過去記事

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

Leave a Reply

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


*