【发布时间】:2016-01-15 09:49:04
【问题描述】:
我正在尝试在 ruby 中实现冒泡排序。对于迭代,我使用 each_index 作为输入数组。我在最后一个索引处出现错误,因为 i+1 索引元素为 nil,并且 ruby 将其与 Fixnum 进行比较时出现异常。有办法解决吗?我可以以某种方式在倒数第二个元素处停止 each_index 吗?
def bubble_sort(array)
flag = false
while flag == false
array.each_index do |i|
if array[i] > array[i+1]
array[i], array[i+1] = array[i+1], array[i]
flag = false
else
flag = true
end
end
end
puts array
end
bubble_sort([2,5,3,8,5,6,10])
【问题讨论】: