(備份一下,格式先不管了)

  1. 遞歸:

關於遞歸的理解:
package practise;
/**

  • 關於遞歸的實際理解
  • @author Viaxiz

*/
public class Dugui2 {
public static void f(int n) {
if(n>0) {
f(n-1);
System.out.println(n);
f(n-1);
}
}//遞歸就是把自己當作語句調用,所以爲了完成語句的執行,其後面必然會出來的,想想棧的原理,先進後出,最開始調用的方法即最後一次執行的方法
//因爲執行遞歸語句後還要執行遞歸語句剩下的

public static void main(String[] args) {
	f(3);
}

}
陳越姥姥講遞歸:
在這裏插入圖片描述

重點:

  1. 出口在哪
  2. 遞推性(相似性)
    a. 相似而規模逐漸變小,以參數體現
    b. 若沒有明顯的相似性,就需要主動構造

a) 關於遞歸,記得從最開始先一步一步地推,找出其中的規律(關係)
例如:
漢諾塔
黑白球:
test

輸出逆序字符串
整數劃分

關於遞歸總給我以下感覺:

  1. 找規律
  2. 判定條件;
    a. return
    b.注意兩個或多個變量值傳入,其中的有些值是要相應變化的

在這裏插入圖片描述
深搜最重要的就是正確表示狀態
如,部分和的問題:

部分和的這個問題……我沒寫出來…

在這裏插入圖片描述

李白打酒這題…也太…那啥了~
在這裏插入圖片描述
代碼示例:

在這裏插入圖片描述
關於六角形的問題,哈哈哈哈哈哈哈哈哈哈哈~,全排列大法好啊!!!一次過。
在這裏插入圖片描述
但是我們也還是看看深搜的解法吧
核心代碼:
在這裏插入圖片描述

關於深搜和廣搜:
深搜是用遞歸來實現的,其好像棧一樣,唐劍梅老師的PPT上關於這個遞歸的調用用棧的形式完全地表現了出來,很有意義;
廣搜主要使用隊列來實現的,先進先出的原則,其形象的過程在PPT上也有展示

講道理:
簡單理解,廣搜和暴力有啥區別啊?多了隊列和剪枝??
暴力枚舉,搜索狀態。

記住在Java中的String的用法:
new String(char data[])
String c; c.tocharArray();

String s=“dafafa”;
System.out.println(s.substring(2)+s.charAt(0));
輸出:
在這裏插入圖片描述

深搜在判斷不是最終結果後,其執行的其實是接下來的狀態語句
如,接下來的狀態用循環表示:
在這裏插入圖片描述
以及不用循環表示的情況:

在這裏插入圖片描述

關於遞推:
參考鏈接https://www.cnblogs.com/skyme/p/3541863.html
在這裏插入圖片描述
當n=1:
在這裏插入圖片描述
當n=2:有7種走法,也就是綠色線條的數量
在這裏插入圖片描述
當n=3:
在這裏插入圖片描述
同樣的道理,至於兩個點的,我們只需要將減去三個點的即得到兩個點的情況了。
所以得到遞推的關係式爲:
在這裏插入圖片描述

關於Java中的容器
在這裏插入圖片描述
順勢感嘆一波這段時間過得太快了啊,從開年到現在,從準備完藍橋杯到現在,時間真的好快好快啊!少年回頭看,笑我還不快跟上!!!

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