【发布时间】:2014-06-20 01:25:53
【问题描述】:
我有以下代码对数组参数进行冒泡排序。
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
我想具体理解这一行:arr[i], arr[i + 1] = arr[i + 1], arr[i]
在这种情况下说arr[i] = 1 and arr[i+1] = 3
表达将在所有意图和目的1, 3 = 3, 1
显然这会给我一个错误,所以我假设这仅在将 value 分配给变量时才有效。
但是,这对我来说似乎仍然违反直觉。我希望代码:arr[i], arr[i + 1] = arr[i + 1], arr[i] 给我一个错误。有没有人可以帮助我解释为什么这是一个有效的表达方式?
【问题讨论】:
标签: ruby arrays bubble-sort