2
Rubyを少し学び始め、Ruby(2.3.0)で挿入ソートバージョンを試してみることにしました。しかし、私のプログラムが位置を確認するためにチェックし、値をスワップするかどうかは '>'のNoMethodErrorを返します。具体的には:ここでRubyのNoMethodError比較ステートメント
./rubyInsertSort.rb:28:in `block in sort': undefined method `>' for 1..4:Range (NoMethodError)
from ./rubyInsertSort.rb:26:in `each'
from ./rubyInsertSort.rb:26:in `sort'
from ./rubyInsertSort.rb:22:in `main'
from ./rubyInsertSort.rb:40:in `<main>'
ソートメソッドのコードです:
def sort(input, valueAmount)
for i in 1..valueAmount
j = i
while j > 0 and input[j - 1] > input[j]
input[j], input[j - 1] = input[j - 1], input[j]
j += -1
end
end
#Output loop
for i in 1..valueAmount
puts "Sort Value #{i} = #{input[i]}" #Outputs the sorted array to the console
end
end
私はこれはおそらく、些細なと本当に簡単なものである知っているが、と私はここや他の場所で質問を見つけることができませんソリューションと任意の助けをいただければ幸いです!
それは私には正常に動作します...それはより多くのルビー賢明 '(1..valueAmountをやってみているバージョン変更します).each do | i | 'とそれが動作するかどうかを確認してください –
このエラーの原因となる' input'と 'valueAmount'の値を与えてください。 –
valueAmountは格納する値の量を格納する整数値で、inputは値のリストを格納するサイズ[valueAmount]の配列です。この場合、入力値は2,7,4、および9でした。 –