のArrayとして扱われる最初のを比較するとき、私は失敗し、エラー「アレイとFixnumかの比較は(例外ArgumentErrorを)失敗した」取得しています私は、Rubyに新しいですし、ウィキペディアFixnumかは、Rubyの
に与えられたように私はmerge sort algorithmをしようとしていますマージメソッドの左と右の配列の要素。どのような理由があり、この問題を解決するにはどうすればよいですか?おかげで:)エラーがこれらのラインにある
def mergeSort(array)
if array.length == 1
return array
end
middle = array.length/2 - 1
left = array[0..middle]
right = array[middle+1..array.length-1]
left = mergeSort(left)
right = mergeSort(right)
merge(left,right)
end
def merge(left,right)
result = []
while left.length > 0 || right.length > 0
if left.length > 0 && right.length > 0
one = left[0]
two = right[0]
puts ("one's class is #{one.class} two's class is #{two.class} two is #{two}")
if one <= two
result << left.shift
else
result << right.shift
end
elsif left.length > 0
result.push(left)
left = []
else
result.push(right)
right = []
end
end
puts "result is #{result}"
result
end
「もし1つ<= 2」があなたのエラーを引き起こしていると言っていますか? –
@muistooshortはい..それは私がエラーを取得しているところです – Pramod