通俗遞歸演算法

遞歸演算法

1

從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事!故事是什麼呢?從前有座山,山裡有座廟,廟裡有個老和尚正在給小和尚講故事!故事是什麼呢……


2

谷歌公司有世界上最聰明的程序員。他們不光聰明,還很有自己的「冷幽默」,別出心裁。比如說,假設你不懂得什麼是「遞歸」,不妨去谷歌搜索一下這個關鍵詞。

然後你會發現,除了給出必要的搜索結果,谷歌還給出了一個提示語「您是不是要找:遞歸」,如圖4-5所示。


圖4-5 谷歌程序員的「冷幽默」

咋一看,你可能會覺得,這谷歌搜索是不是有問題啊?我的確、明明、絲毫無誤地查詢的就是「遞歸」,還提示什麼啊?其實,這正是谷歌搜索引擎背後程序員們的「冷幽默」所在:如果你點擊了那個提示「遞歸」,搜索引擎將再次搜索「遞歸」——相當於自己調用自己——這不正是遞歸的精髓嗎?

或許你懂了,會心一笑,但可能還會疑惑:這也不對啊,所有的遞歸都有終止條件,如果我們一直點擊這個提示詞「遞歸」,查詢豈不是會無限循環下去?

放心,你一定不會一直點擊下去。因為這個遞歸的出口正是,查的人終於懂得什麼是遞歸而不再查詢。而你就是那個懂得的人。