算法递归简论
【0】README
0.1) 本文總結于 數據結構與算法分析,旨在了解設計 遞歸程序 的相關法則和技巧;
0.2) 我記憶尤新的一點是: 凡事可以用循環代替的遞歸函數,它就不是一個好的遞歸函數,對我幫助很大;(設計完遞歸函數后,可以檢驗下,該遞歸函數是否可以用循環代替)
【1】 遞歸簡論
1.1)當編寫遞歸例程的時候,關鍵是要牢記遞歸的四條基本法則-Principle:
- P1)基準情形:必須總是有某些基準情形,它無需遞歸就能解除;
- P2)不斷推進:對于那些需要遞歸求解的情形,每一次遞歸調用都必須要是求解狀況朝接近基準情形的方向前進;
- P3)設計法則:假設所有的遞歸調用都能運行;
- P4)合成效益法則(compound interest rule):在求解一個問題的同一實例時, 切勿在不同的遞歸調用中作重復性工作 ;
【2】看三個荔枝:
- 2.1)荔枝1
代碼參見 https://github.com/pacosonTang/dataStructure-algorithmAnalysis/blob/master/chapter1/p6.c)
source code at a glance :
- 2.2)荔枝2(一個錯誤的遞歸函數)
source code at a glance :
- 2.3)荔枝3
(代碼參見 https://github.com/pacosonTang/dataStructure-algorithmAnalysis/blob/master/chapter1/p8.c)
source code at a glance :
總結
- 上一篇: 怎么变更备案(怎么变更备案信息)
- 下一篇: http响应消息的响应状态码和意义