如果你想迅速複習演算法來應付考試或者是面試的話,請看本人的其他部落格。遞迴,儘管簡單,卻並不是良藥。況且,在很多大公司看來,遞迴是一種非常麻煩並且耗時耗力的演算法。誠然,從簡單的計算角度來說,遞迴就是這樣的。但是,如果你換乙個角度來看看計算機的世界,遞迴卻是不能被忽略的。如果你是乙個有著人類智慧型的正常人,而非乙個為了工作**的機械人的話,遞迴無疑是你思考中必不可少的元素。
從高中起,我們就學過遞迴函式。還記不記得那些年你捨不得解開的歸納法?
無獨有偶,《算大導論》一上來就給出了我們遞迴式的演算法分析。難道是中美之間意識形態的第一次握手麼?
說實話,我們應該這麼看待這個問題。
計算機就是用來輔助人類思考的機器。現在一直流傳著這樣的話,我們有時候向前走的太遠於是就忘了原點在**。計算機的初衷和他的成功點不同,是為了破譯密碼或者簡易計算。所有演算法中,遞迴是最符合這乙個原始定義的。當然,在時空所限的今天,我們無法將我們的思想完完全全的融入這個小機器裡面,所以我們想了很多方法來將節省。但是,對於時空的分析,遞迴又恰巧是最能說明問題的。
遞迴的前提,我認為是,世界都是可以二分的。倘若不能復用,就沒有函式的意義。我們看待問題總是盡量的去歸納,總結,從而節省了時間。
2. 遞迴法
我們把一些想法變成可重複執行的函式和不可重複執行的過程。乙個直觀的想法就是用遞迴的方法來進行函式的方法**。當我們選擇遞迴時候,需要考慮兩個問題:乙個是要找到遞迴函式式,另乙個是要找到遞迴邊界。對於後面這個問題,給出了如下三個方法。
2.1 代換法(substitution method)
代換法需要兩個步驟
tis:
2.2 遞迴樹法(recursive tree)
2.3 主方法(master method)
遞迴與尾遞迴
1 遞迴 關於遞迴的概念,我們都不陌生。簡單的來說遞迴就是乙個函式直接或間接地呼叫自身,是為直接或間接遞迴。一般來說,遞迴需要有邊界條件 遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進 當邊界條件滿足時,遞迴返回。用遞迴需要注意以下兩點 1 遞迴就是在過程或函式裡呼叫自身。2 在使用遞迴策略時...
遞迴與尾遞迴
1 遞迴 簡單的來說遞迴就是乙個函式直接或間接地呼叫自身,是為直接或間接遞迴。一般來說,遞迴需要有邊界條件 遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進 當邊界條件滿足時,遞迴返回。用遞迴需要注意以下兩點 1 遞迴就是在過程或函式裡呼叫自身。2 在使用遞迴策略時,必須有乙個明確的遞迴結束條件...
遞迴與尾遞迴
前言 今天上網看帖子的時候,看到關於尾遞迴的應用 大腦中感覺這個詞好像在 見過,但是又想不起來具體是怎麼回事。如是乎,在網上搜了一下,頓時豁然開朗,知道尾遞迴是怎麼回事了。下面就遞迴與尾遞迴進行總結,以方便日後在工作中使用。1 遞迴 關於遞迴的概念,我們都不陌生。簡單的來說遞迴就是乙個函式直接或間接...