【发布时间】:2014-08-23 19:15:51
【问题描述】:
def quick_sort(list)
return list if list.size <= 1
p = list.sample
left, right = list.partition{|elmt| elmt <= p}
quick_sort(left) + quick_sort(right)
end
a = [9,8,7,6,5,0,6]
b = quick_sort(a)
puts b
当我在终端运行它时,它显示:
quick_sort.rb:4: stack level too deep (SystemStackError)
但是我在第 4 行看不到任何问题。任何帮助将不胜感激!
【问题讨论】:
-
您的
quick_sort函数永远不会达到最终状态。它一直在调用自己,直到系统堆栈耗尽。 -
@lightswitch05 或者递归次数过多,达到堆栈深度限制。
-
@DouglasFShearer 这正是他刚才所说的。
-
忽略我,查看我对我自己(已删除)答案的评论。