我正在尝试在Ruby中实现快速排序,但是出现了错误`quicksort':堆栈层数太深(SystemStackError)。
def quicksort(array)
if array.length <= 1
return array
end
less = Array.new
greater = Array.new
pivot = array[array.length/2]
array.each do |x|
if x < pivot
less << x
else
greater << x
end
end
return quicksort(less) << pivot << quicksort(greater)
end
编辑
我将else
改为elsif x > pivot
,看起来它可以工作。