Arrays 数组中有3个以上条目的冒泡排序错误(ruby)

Arrays 数组中有3个以上条目的冒泡排序错误(ruby),arrays,ruby,bubble-sort,Arrays,Ruby,Bubble Sort,我的泡泡排序遇到了问题。它似乎真的很接近工作,因为它将正确地排序到三个数字。当我添加第四个时,它返回: in `>': comparison of Fixnum with nil failed (ArgumentError) 我试着在调试模式下进行测试,但我不确定问题出在哪里。我正在使用的课程还没有涉及递归,所以我假设我应该能够在没有递归的情况下解决这个问题 def bubble(array) x=0 while array!=array.sort if array[

我的泡泡排序遇到了问题。它似乎真的很接近工作,因为它将正确地排序到三个数字。当我添加第四个时,它返回:

in `>': comparison of Fixnum with nil failed (ArgumentError)
我试着在调试模式下进行测试,但我不确定问题出在哪里。我正在使用的课程还没有涉及递归,所以我假设我应该能够在没有递归的情况下解决这个问题

def bubble(array)
  x=0
  while array!=array.sort
      if array[x]>array[x+1]
          nu=array.slice(x)
          array.delete_at(x)
          array<<nu
      else
        x+=1
      end
    end
  puts "Sorted array: #{array}"
end
def气泡(阵列) x=0 而阵列=数组.sort 如果数组[x]>数组[x+1] nu=数组.切片(x) 数组。删除(x)处的_
数组因为没有检查数组边界,所以应该检查数组边界

n = array.length

# while loop  
# ... 
# a loop with array boundary
  (n-1).times do |x|
      # swap element in here
  end
#end while loop

谢谢你的提示!为什么要对数组进行n²次排序?另外,请注意,
Enumerable#sort
和冒泡排序都不稳定,因此循环条件可能永远不会为false。