誰かがこのコードを説明できますか? 演習のソリューション部分から取得したので、実行されます。sorted
を使用して比較しないのはなぜですか。また、の後に追加する必要がある==
のはなぜですか。sorted = false
sorted
until
def bubble_sort(arr)
sorted = false
until sorted
sorted = true
(arr.count - 1).times do |i|
if arr[i] > arr[i + 1]
arr[i], arr[i + 1] = arr[i + 1], arr[i]
sorted = false
end
end
end
arr
end
コードは次のようになると予想していました。
sorted = false
until sorted == true do
ただし、これに置き換えようとすると、次のエラーが発生します。
eval):12: (eval):12: compile error (SyntaxError)
(eval):3: syntax error, unexpected kDO_COND, expecting kEND
(arr.count - 1).times do |i|
^
(eval):12: syntax error, unexpected kEND, expecting $end
これは、エラーが発生している完全なコードです。
def bubble_sort(arr)
sorted = false
until sorted == true
(arr.count - 1).times do |i|
if arr[i] > arr[i + 1]
arr[i], arr[i + 1] = arr[i + 1], arr[i]
sorted = false
end
end
end
arr
end