下面的代码给出了一个错误:
def bubble_sort(arr)
until arr == arr.sort do
(arr.count - 1).times do |i|
(arr[i], arr[i + 1] = arr[i + 1], arr[i]) if (arr[i] > arr[i + 1])
end
end
arr
end
(eval):433: (eval):433: 编译错误 (SyntaxError)
(eval):426: 语法错误,意外 kDO_COND,期待 kEND (arr.count - 1).times do |i| ^
(eval):433: 语法错误,意外 kEND,期待 $end
但它下面的另一个变体成功通过了。为什么?
def bubble_sort(arr)
begin
(arr.count - 1).times do |i|
(arr[i], arr[i + 1] = arr[i + 1], arr[i]) if (arr[i] > arr[i + 1])
end
end until arr == arr.sort
arr
end