深度優先搜尋:
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 指...