0
バブルソートの問題が発生しました。正しく3つの数字を並べ替えるので、実際には仕事に近いように思えました。私は第四を追加すると、それが返されます。配列(ルビー)で3つ以上のエントリを持つバブルソートエラー
in `>': comparison of Fixnum with nil failed (ArgumentError)
を私がデバッグモードでそれを通過しようとしたが、私は、問題がどこにあるかわかりません。私が使っているレッスンは再帰をまだカバーしていないので、私はそれを使わずにこれを解決できるはずだと仮定しています。
def bubble(array)
x=0
while array!=array.sort
if array[x]>array[x+1]
nu=array.slice(x)
array.delete_at(x)
array<<nu
else
x+=1
end
end
puts "Sorted array: #{array}"
end
slice
私はdelete_at
を追加しましたので、エントリを削除されませんでした。あなたは、配列の境界をチェックdid'tので
なぜあなたは回n²配列をソートしているが好きでも確認する必要がありますか?また、 'Enumerable#sort'もバブルソートも安定していないので、あなたのループ条件が決して偽でないことに注意してください。 –