超入門者向けのRubyサンプルコード記事です。問題と、解答例となるサンプルコードをセットに公開しています。難しい用語の解説は控えめに、まずは動かしてみたい人向けのコンテンツです。
はじめに
どうもMizokeiです。Ruby超入門シリーズです。本記事の実行環境は以下です。
実行環境
- Windows10 64bit
- Ruby 2.5
問題と解答例をセットに公開
問題と解答例としてサンプルコードをセットに公開します。サンプルコードを、コピペして実行し動作を確認してみましょう。
とりあえず、動かしてみることが目的なので、専門用語などの難しい話は、別途参照書などを御覧ください。
問題
65, 32, 21, 43, 2, 4, 1, 8, 16の要素を持つリストを定義し、降順に並び替えよ。並び替え前後がわかるように、「並び替え前」と「並び替え後」の2パターン出力せよ。ただし、sort()は使わないこと。
出力結果
0 1 2 3 |
並び替え前:[65, 32, 21, 43, 2, 4, 1, 8, 16] 並び替え後:[65, 43, 32, 21, 16, 8, 4, 2, 1] |
解答例 サンプルコード
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#数値のリスト num_list = [65, 32, 21, 43, 2, 4, 1, 8, 16] #リストを表示する puts '並び替え前:' + "#{num_list}" # # 以下、リストを並び替える # #リストを辿るための変数 i = 0 j = 0 #値を交換するために使用する一時的な変数 tmp = 0 #一つずつリストの要素を辿る Range.new(0, num_list.length-1).each do |i| #辿っている要素以降の要素を辿る Range.new(i, num_list.length-1).each do |j| #リスト内の2つの要素を比較し小さな値がないか(降順か)確認する if num_list[i] < num_list[j] then #大きな値があれば小さな値と交換する tmp = num_list[i] num_list[i] = num_list[j] num_list[j] = tmp end end end #並び替えたリストを表示する puts '並び替え後:' + "#{num_list}" |
関連記事
【Ruby超入門】クラスを作成してみよう
【Ruby超入門】値の交換を実装してみよう
【Ruby超入門】ヒープソートを実装しよう【アルゴリズム】