我想解決合併排序,我迷路在遞歸概念。爲了讓自己更好理解,我畫了一個小例子。瞭解遞歸概念使用兩個遞歸
隨着n= 2
下面的程序我得到的答案爲0,1,2
我完全瞭解使用堆棧,並通過puts n
完成遞歸後一個返回堆棧一個值的概念。
def one(n)
if n < 0
return
end
one(n-1)
puts n
end
但是,當我試圖用另一種遞歸像下面我完全失去了,爲什麼又是怎樣回答0,0,1,0,0,1,2
。任何人都可以解釋它嗎?
def one(n)
if n < 0
return
end
one(n-1)
one(n-1)
puts n
end
請詳細說明兩個遞歸如何協同工作。
你能解釋一下嗎? ..我的意思在第一個例子..爲什麼我的遞歸完成,然後打印?在第二個例子中,爲什麼每次第一次遞歸都會發生第二次遞歸? – 2014-10-28 04:47:27