廣搜和深搜

2022-01-12 09:57:33 字數 471 閱讀 3272

深度優先搜尋:

dfs,運用遞迴函式,通過棧的結構進行搜尋。

模板:·dfs(狀態)

–if 狀態 是 目標狀態then

·dosomething

–else

·for 每個新狀態

–if 新狀態合法

»dfs(新狀態)

·主程式:

·dfs(初始狀態)

廣度優先搜尋:

bfs,運用遞迴函式,通過佇列的方式搜尋。

dfs就是對於某乙個搜尋樹,通過一定的順序把每乙個枝上的子樹全都遍歷一遍。。也就類似於從起點出發,先把乙個方向的點都遍歷完才會改變方向......「不撞南牆不回頭」

bfs是遍歷某一深度,通過佇列的方式存起來,邊push邊pop,知道隊列為空才遍歷完。bfs相對於dfs來說運用空間更多。dfs是空間效率高,dfs不需要儲存搜尋過程中的狀態,而bfs在搜尋過程中需要儲存搜尋過的狀態,而且一般情況需要乙個佇列來記錄。

廣搜和深搜

一般來說,廣搜常用於找單一的最短路線,或者是規模小的路徑搜尋,它的特點是 搜到就是最優解 而深搜用於找多個解或者是 步數 已知 好比3步就必需達到前提 的標題,它的空間效率高,然則找到的不必定是最優解,必需記實並完成全數搜尋,故一般情況下,深搜需要很是高效的剪枝 優化 像搜尋最短路徑這些的很顯著若是...

深搜和廣搜

深度優先搜尋屬於圖演算法的一種,英文縮寫為dfs即depth first search.其過程簡要來說是對每乙個可能的分支路徑深入到不能再深入為止,而且每個節點只能訪問一次 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋。基本思路 深度優先遍歷圖的方法是,從圖中某頂點v出發 1 訪問頂點v 2 依...

深搜和廣搜

qq 親密度用的是帶權圖中,每條邊都有乙個 weight 我們可以通過這個權重來表示 qq 好友間的親密度。鄰接矩陣儲存方法 對於無向圖來說,如果頂點 i 與頂點 j 之間有邊,我們就將 a i j 和 a j i 標記為 1 對於有向圖來說,如果頂點 i 到頂點 j 之間,有一條箭頭從頂點 i 指...