遞推算法
枚舉函數
遞歸遞歸
分治遊戲
貪婪基礎
回溯(試探)搜索
斐波那契數列(順推法):由n-2,n-1項獲得第n項銀行存款(逆推法)循環
將問題的全部可能答案都列舉出來,根據判斷條件判斷此答案是否合適,通常用循環實現。方法
百錢買百雞、填寫運算符比賽
注意:必須有一個明確的遞歸結束條件;若是遞歸次數過多,容易形成棧溢出。while
漢諾塔問題、階乘問題
將一個規模爲N的問題分解爲K個規模較小的子問題,這些子問題相互獨立且與原問題性質相同。只要求出子問題的解,就可獲得原問題的解。
大數相乘問題、比賽日程安排
從問題的某一個初始解出發,逐步逼近給定的目標,以便儘快求出更好的解。
1. 從問題的某一初始解出發
裝箱問題、找零方案
在試探算法中,放棄當前候選解,並繼續尋找下一個候選解的過程稱爲回溯。擴大當前候選解的規模,以繼續試探的過程稱爲向前試探。
(爲求得問題的正確解,會先委婉地試探某一種可能狀況。在進行試探過程當中,一旦發現原來選擇的假設狀況是不正確的,立刻會自覺地退回一步從新選擇,而後繼續向前試探。反覆進行,直到獲得解或證實無解時才死心)
1.針對所給問題,定義問題的解空間
2.肯定易於搜索的解空間結構
3.以深度優先方式搜索解空間,並在搜索過程當中用剪枝函數避免無效搜索
八皇后問題、29選7彩票組合
對真實事物或者過程的虛擬。
猜數字遊戲、擲骰子問題