【发布时间】:2016-12-18 21:49:59
【问题描述】:
尝试实现一个简单的冒泡排序。代码如下:
def bubble(array)
start = 0
sorted = []
while start < array.length - 1
if array[start] > array[start + 1]
array[start], array[start + 1] = array[start + 1], array[start]
else
end
start += 1
end
return array
end
print bubble([4,8,2,6,7,1])
我得到的输出是:
[4, 2, 6, 7, 1, 8]
我的代码哪里出了问题?
【问题讨论】:
-
您的
start计数器需要以某种方式重置,以便您可以继续进行比较。现在你的while循环只遍历所有数字一次 -
else end是多余的,仅供参考; @philipyoo 是正确的,您需要反复遍历数组,直到不再进行交换为止
标签: arrays ruby sorting while-loop