清明時節雨紛紛,遞歸分治欲斷魂

說起數據結構,大家肯定都不陌生,今天我們一起來聊下遞歸分治思想,下面是我在學習過程中做的筆記,可能不是很全面,希望大家能夠多多擔待。
1、遞歸算法是效率比較低的一種算法,不到萬不得已請不要用遞歸
2、For,while,do-while都屬於迭代算法,可以用來替代遞歸
3、遞歸是函數在調用自己的意思,
4、斐波那契數列的遞歸實現:當n=0時,F(n)=0;當n=1時,F(n)=1;當n>1時,F(n)=F(n-1)+F(n-2)
5、遞歸函數就是一個直接調用或者通過一系列的調用語句間接的調用自己的函數
6、寫遞歸程序最怕的是陷入永不結束的無窮遞歸中。所以每個遞歸定義必須至少有一個條件,當這個條件滿足時則遞歸不在進行,即函數不再調用自身而返回
7、迭代和遞歸的區別:迭代使用的是循環結構,遞歸使用的是選擇結構
8、遞歸的優點:使用遞歸能使程序的結構更加清晰,更簡潔,更容易理解,從而減少讀懂代碼的時間
9、缺點:大量的遞歸調用會建立函數的副本,會消耗大量的時間和內存,而迭代則不需要此種付出。
10、遞歸的調用分爲調用和回退階段,遞歸的回退順序是它調用順序的逆序。
11、分治思想在算法設計中很常見,當一個問題規模較大且不易求解的時候,就可以考慮將問題分成幾個小的模塊,逐一解決
12、分治思想和遞歸算是親兄弟,因爲採用分治思想處理問題,其各個小模塊通常具有和大模塊相同的結構,這種特性也使遞歸技術有了用武之地
13、折半查找的基本思想:減小查找序列的長度,分而治之的進行關鍵字的查找
14、折半查找的實現過程:先確定查找記錄的所在範圍,逐漸縮小這個範圍,直到找到該記錄或查找失敗爲止。
15、漢諾塔:把64個盤子從X柱子藉助Y柱子移動到Z柱子上
(1)先將63個盤子移動到Y上,確保大盤在上小盤在下
(2)再將最底下的第64個盤子從X柱子上移動到Z柱子上
(3)最後將63個盤子從Y柱子上移動到Z柱子上
注:第一步和第三步都需要藉助第三個柱子,也就是需要將盤子在三個柱子中移動以保證大的在下,小的在上
以上就是我對這塊的理解與認識,希望能夠幫助有需要的人。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章