「まずはソートのアルゴリズムをやってみな!」
そんなことを言われたのは1ヶ月前ぐらいのこと。
これは、アメリカに住むプログラミングのお仕事をしている友達に、
「プログラミング始めるよ!何から始めたらいい?」
って言ったら返信で返ってきた言葉。
「んー…よくわからない笑、わかったら送るね!」
そう返信しておいた。
まぁ初心者にこれがいいのか悪いのかはわからないが、
とにかく1ヶ月前の自分にはさっぱりだった。。笑
でもたまたま学習してたら、一つわかったらここで発表!
ルビーの言語で、ソート(小さい数字順に配列の中身を入れ替えてくれる)メソッド
を書く機会があったので、こちらに載せます。
ソートのアルゴリズム例
# < Description > # if you want to try other scores, please change score points yourself. # ex) score = [45,7,38,90,489,123] # And try sort_method.rb on your terminal.
score = [3,1,4,6,3,7,9,90,1,4,7,9,0,9,5] def score.sort_method puts sort_score_array = [] self.each do |score| index = 0 sort_score_array.each do |sort_score| if sort_score < score index += 1 end end if index == sort_score_array.length sort_score_array << score else i = 0 new_sort_score_array = [] sort_score_array.each do |sort_score| if i == index new_sort_score_array << score end new_sort_score_array << sort_score i += 1 end sort_score_array = new_sort_score_array end end puts sort_score_array end score.sort_method
(SyntaxHighlighter でこのコードに行数がついた表現をしてくれるように設定できるよ!)
これで配列の中にある数字を小さい順に並び替えてくれるよ!
ポイントは、
①最初のif文のところで何番目に数字が大きいか確認する。
②空の配列を準備して、小さい順番通りに入れていく。
です!!
これを理解するには、全くプログラミングをやってない段階からだと
・eachメソッドが何をしているのか。
・i += ってなんなのか
・if文はなんなのか
・メソッドの定義ってクラスメソッド、インスタンスメソッド、特異メソッドってあるけどなんなのか
・配列ってなんなのか
・<<とか==とか[ ]ってなんなのか
ということが必要そうだ…
少しは理解できて進めたようだ。
うん、できたときとか、わかった時とか、
考えてる時もなかなか楽しくなってきた。
やっぱ少しずつできるようになると楽しいね!
としさん