Biraz Ruby öğrenmeye karar verdim ve Ruby'de (2.3.0) bir ekleme sıralama sürümü denemeye karar verdim. Ancak programım pozisyonu kontrol edip değerleri değiştirip değiştirmediğini kontrol ettiğinde, '>' için bir NoMethodError döndürür. Daha spesifik olarak: Burada NoMethodError, Ruby ile Karşılaştırma Açıklaması
./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>'
sıralama yöntemi için kodudur:
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
bunun muhtemelen önemsiz ve gerçekten basit bir şeydir ama burada ya da başka bir soru bulamıyorum biliyorum çözüm ve herhangi bir yardım takdir edilecektir!
Bana iyi çalışıyor ... daha yakut-bilge '(1..valueAmount yapıyor deneyin olan sürümü Modifiye) .each do | i | 've çalışıp çalışmadığını kontrol edin –
Lütfen bu hatanın neden olduğu' input' ve 'valueAmount' değerlerini verin. –
valueAmount, depolanacak değerlerin miktarını depolayan bir tamsayı değeridir, giriş, değerlerin listesini saklayan bir boyut [valueAmount] dizisidir. Bu durumda giriş değerleri: 2, 7, 4 ve 9 –