天天看點

遞歸recursion_韓順平聽課筆記

1.遞歸解決什麼問題

什麼是遞歸:

方法自己調用自己,每次調用傳入不同的變量(控制結束)

遞歸recursion_韓順平聽課筆記

遞歸能解決什麼問題:

漢諾塔:五個盤,要想把最後一塊盤放到c塔,需要先移動四個盤到b塔;要把四個盤移動到b塔,需要先将上三個盤移動到c塔;要将上三個盤移動到c塔,需要先把上兩個盤移動到b塔;要将上兩個盤移動到b塔,需要先将最上面一個盤移動到c塔;(遞歸)

遞歸解決棧解決的問題-代碼更簡潔

遞歸recursion_韓順平聽課筆記

2.遞歸執行機制1,列印問題

方法遞歸調用記憶體分析:

遞歸recursion_韓順平聽課筆記

3.遞歸執行機制2,列印問題進一步思考

修改第2小節中的代碼,輸出結果如何?

遞歸recursion_韓順平聽課筆記

隻輸出n=2,if else是一個整體,進了if方法體内,就不能再進else

4.遞歸執行機制3,階乘factorial問題

階乘factorial實作代碼

遞歸recursion_韓順平聽課筆記

階乘factorial記憶體分析

遞歸recursion_韓順平聽課筆記

5.遞歸執行機制4,遞歸的重要規則,五點

遞歸的重要規則,五點:

6.遞歸斐波那契fibonacci

題目:給出一個整數n,求出第n位的斐波那契數是多少

斐波那契第n位數的值,等于前兩位的和

main

遞歸recursion_韓順平聽課筆記

遞歸斐波那契fibonacci實作思路及代碼

遞歸recursion_韓順平聽課筆記

7.猴子吃桃

解決的要點在理清天數,和桃子數的關系,還有就是return

8.老鼠出迷宮1,使用數組建立迷宮地圖,輸出迷宮地圖

使用數組建立迷宮地圖

遞歸recursion_韓順平聽課筆記

輸出迷宮地圖

遞歸recursion_韓順平聽課筆記

9.老鼠出迷宮2

老鼠出迷宮思路分析:

找到傳回true,否則傳回false

map數組中各個值的不同含義,3 走過,但是走不通是死路

找路政策,下,右,上,左

0 和 2都表示可以走,隻需要一次判斷即可

遞歸recursion_韓順平聽課筆記

10.老鼠出迷宮3,修改找路政策,檢視路徑是否變化

修改找路政策,檢視路徑是否變化

上,右,下,左

走2時,判斷為走不通(不走走過的路)

11.老鼠出迷宮4,測試回溯現象(這個回溯是在代碼那裡實作的)

測試回溯現象

思考:如何求出最短路徑

遞歸recursion_韓順平聽課筆記

12.漢諾塔

遞歸recursion_韓順平聽課筆記

如果有多個盤,可以看成兩個盤,最下面的盤和他上面的所有盤

遞歸recursion_韓順平聽課筆記

13.八皇後

八皇後問題說明:

遞歸recursion_韓順平聽課筆記

八皇後問題思路分析:

遞歸recursion_韓順平聽課筆記