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。