所以我决定编写一个bubble_sorts数组的程序。它需要数组的前两个元素,如果第一个元素小于第二个元素,则对它们进行排序。然后它移动到位置1和2的下两个元素,并对它们进行排序。
这是我的代码
num_array = [4,7,19,5,71,26,37,52,59,3]
def sort_array
x = 0
while num_array.find_index (x) < num_array.count
if num_array[x] < num_array[x+1]
num_array[x] = num_array[x]
else
num_array[x] = num_array[x+1]
end
x += 1
end
end
我收到以下错误消息。
NameError: undefined local variable or method 'num_array' for main: Object
我不明白,我在第一行清楚地定义了变量num_array。
我可以使用
轻松地对数组进行排序num_array.sort
但我想使用冒泡排序方法对其进行排序。
帮助将不胜感激。
答案 0 :(得分:0)
num_array
超出了范围。您应该将其设为全局变量$num_array
或将其作为参数传递给sort_array。最后一个更好。
def sort_array!(num_array)
x = 0
while num_array[x] < num_array.count
if num_array[x] < num_array[x+1]
num_array[x] = num_array[x]
else
num_array[x] = num_array[x+1]
end
x += 1
end
num_array
end
num_array = [4,7,19,5,71,26,37,52,59,3]
puts sort_array!(num_array)