【发布时间】:2019-04-28 04:16:05
【问题描述】:
我正在创建一个冒泡排序算法。为什么我得到Integer与nil的错误信息比较失败(ArgumentError)?
def bubble_sort(arr)
arr.each_with_index do |i, j|
print arr[j]
print arr[j+1]
if arr[j] > arr[j+1]
print "swap"
end
end
print arr
end
bubble_sort([4,3,78,2,0,2])
【问题讨论】:
-
当您到达
arr、j = arr.size-1和i = arr[j]的最后一个元素时。然后将arr[j]与arr[j+1]进行比较。因此后者等于nil,因此您将整数与nil进行比较。 (推测,arr包含整数。) -
即使你解决了你的问题,你的算法也不会工作,因为你实际上并没有交换
arr的元素。使用puts "swap",您只是在说您是。 :-)
标签: ruby comparison argument-error