簡單搜尋 DFS BFS

2021-08-21 19:48:34 字數 586 閱讀 6039

1、dfs(depth-first-search)深度優先搜尋演算法:

是圖與樹搜尋中用到的一種演算法:

遍歷的思想是:先從根部進行,一直遍歷到最底部的葉節點,然後再返回到根節點,判斷,如果該根節點上的葉節點都被遍歷過,再返回到根節點,直到遍歷到整棵樹。

dfs遍歷循序: 我們可以通過棧的思想來進行搜尋,a入棧,b入棧,d入棧然後搜尋,d出棧,e入棧,進行搜尋,e出棧,b出棧,c入棧,f入棧進行搜尋,然後全部出棧

當然實際上是通過遞迴的操作來實現棧上的搜尋。

2、bfs(breadth first search):廣度優先搜尋演算法

還是借用上圖

廣度優先搜尋顧名思義,以橫向優先,所以我們的搜尋是逐層搜尋。

搜尋順序是a,b->c,d->e->f.

我們實際實現是通過佇列來實現的。

首先,將a入隊,進行搜尋判斷。

將b,c入隊,a出隊,進行搜尋判斷。

將d,e,f入隊,b,c出隊進行搜尋判斷。

清空佇列。

簡單搜尋 DFS BFS

簡單搜尋 dfs bfs dfs 俗稱爆搜,為深度優先搜尋 bfs 俗稱廣搜,為寬度優先搜尋 假設當前有一棵解答樹 當然一般非標準樹形 dfs借助棧一路下通,直通到最後一層 即已算出乙個可行解 再退一層,看看在這一層還有沒有其他分支,有就繼續扎下去 重複這個過程 so,這就是所謂的 dfs可以解任何...

搜尋演算法 DFS BFS(簡單介紹)

一般步驟 1 把初始狀態放入陣列中,設為當前狀態 2 擴充套件當前的狀態,產生乙個新的狀態放入陣列中,同時把新產生的狀態設為當前狀態 3 判斷當前狀態是否和前面的重複,如果重複則回到上乙個狀態,產生它的另一狀態 4 判斷當前狀態是否為目標狀態,如果是目標,則找到乙個解答,結束演算法。5 如果陣列為空...

DFS BFS搜尋 題目

這篇博主寫的是圖的深搜 圖的dfs附 圖的深度優先遍歷 出處 一條魚 2011 12 26 include include struct node 圖頂點結構定義 typedef struct node graph 圖形的結構新型態 struct node head 9 圖形頂點陣列 int vis...