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