我看到有更好的 ruby 冒泡排序代码已经发布在诸如这里的地方: Using the Bubble sort method for an array in Ruby 但是我在调试我当前的代码时遇到了麻烦,如果能帮助我找出为什么我的代码不起作用,我将不胜感激。谢谢。
def bubble_sort(arr)
original = arr
x = 0
while x < arr.count - 1
if arr[x] < arr[x + 1]
y = arr[x + 1]
arr[x + 1] = arr[x]
arr[x] = y
end
x += 1
end
if original == arr
return arr
else
return bubble_sort(arr)
end
end
最佳答案
其中一个问题是:
original = arr
您希望 original
是 arr
当前状态的副本,对吗?好吧,不。它们将指向同一个数组。这就是为什么你的函数永远不会在这里递归:
if original == arr
return arr
else
return bubble_sort[arr]
end
要复制数组,使用dup
original = arr.dup
关于ruby - 我的冒泡排序代码中的错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830407/