Arrays 如何在ruby中运行每个_索引直到最后一个元素?

Arrays 如何在ruby中运行每个_索引直到最后一个元素?,arrays,ruby,iterator,each,Arrays,Ruby,Iterator,Each,我试图在ruby中实现一个冒泡排序。对于迭代,我为输入数组使用了每个_索引。我在最后一个索引处得到一个错误,因为I+1索引元素为nil,ruby给出了一个异常,将其与Fixnum进行比较。有办法绕过它吗?我可以在最后的第二个元素停止每个索引吗 def bubble_sort(array) flag = false while flag == false array.each_index do |i| if array[i] > arr

我试图在ruby中实现一个冒泡排序。对于迭代,我为输入数组使用了每个_索引。我在最后一个索引处得到一个错误,因为I+1索引元素为nil,ruby给出了一个异常,将其与Fixnum进行比较。有办法绕过它吗?我可以在最后的第二个元素停止每个索引吗

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])
看一看

def bubble_sort(array)
    flag = false
    while flag == false
        array.each_index.each_cons(2) do |i,j|
          if array[i] > array[j]
            array[i], array[j] = array[j], array[i]
            flag = false
        else
            flag = true
        end
        #etc