當乙個函式用它自己來定義時就稱為遞迴。
但重要的是要記住,c提供的僅僅是遵循遞迴思想的一種企圖。不是所有的數學函式都能有效地(或正確地)由c的遞迴模擬來實現。
遞迴的4個基本法則:
1.基準情形。必須要有某些基準的情形,它不用遞迴就能求解。
2.不斷推進。對於那些需要遞迴求解的情形,遞迴呼叫必須總能夠朝著產生基準情形的方向推進。
3.設計法則。假設所有的遞迴呼叫都能執行。
4.合成效益法則。在求解乙個問題的同乙個例項時,切勿在不同的遞迴呼叫中做重複性的工作。
遞迴的主要問題是隱含的簿記開銷。
--------------------------以上內容書中摘錄,我是小尾巴,哦不,分割線--------------------
記得大二的時候,從畢業季的跳蚤市場上買了本信計專業的書,上面由講從遞迴得出非遞迴的方法。
現在身在外地,而且時隔多年,那本書怕是找不到了。
關於書中舉的fibonacci數列的解法網上有各種各樣的資料,我就不列舉了。
只給出乙個非遞迴的解法。
long fibonacci(long lparam)
long lf1=1;
long lf2=1;
long lres=0;
for(long lindex=0;lindex
讀書筆記 資料結構(1)開篇吐槽
離職好多天了,本來要陪著兩個從青島來的哥們遊北京,但是這兩個人太屌絲了,昨晚上兩個去了三里屯酒吧花了九百多 所以今天他們去北海我就沒跟著,不想被坑。打算寫寫資料結構的東西,回憶一下各種知識,看看回青島能不能找個工作,不行我就去軟體園下面賣盒飯。我是吐槽專用分割線 關於資料結構的書,我偏好機械工業出版...
讀書筆記 資料結構(2)演算法分析
演算法是為求解乙個問題需要遵循的 被清楚地制定的簡單指令的集合。對於乙個問題,一旦給定某種演算法並且以某種方式確定其是正確的,那麼重要的一步就是確定該演算法將需要多少諸如時間或空間等資源量的問題。典型增長率 估計執行時間 1.for迴圈 一次for迴圈的執行時間至多是該for迴圈內語句的執行時間乘以...
讀書筆記 大話資料結構 1
對於電腦科學,資料結構的重要性不言而喻。它對於乙個程式設計師的功力的提高起著關鍵的作用。勿在浮沙築高台,想要成為一名合格的hacker。基礎理論決定乙個程式設計師思維的深度。介於此,決定認真學習資料結構,找到比較基礎易懂的大話資料結構來開始我的學習之旅。資料結構 相互之間存在一種或多種特定關係的資料...