我試圖使用遞歸實現自己的合併排序。堆棧使用合併排序
def merge_sort(a,i,j)
if i < j
merge_sort(a,i,j/2)
merge_sort(a,j/2+1,j)
merge(a,i,j/2,j/2+1,j)
end
end
def merge(a,i,j,k,l)
# No implementation yet
end
問題是我的執行結果在堆棧太深。我不應該得到這樣一個小陣列的這個錯誤消息。我試圖分類的數組只是五個元素。
b = [5,4,3,2,1]
p merge_sort(b,0,b.size - 1) # => results in 'stack to deep' message
第一步是調試。作爲第一行的'p [a,i,j]'可能會*非常明顯。我的錢正在一個錯誤的錯誤。 – tadman