dfs:能找到可行的路徑,所需時間長,需要標記位置
bfs:能找到最短的路徑,所需空間長,需要出入佇列
兩個搜尋的相同點是都利用了二維陣列的圖,有的時候都用了標記方法。
但是dfs,我覺得沒什麼變化,就這樣了。
但是bfs,
1.可以用stl的queue,但是,沒辦法對付路徑記錄。
2.可以用自己寫的結構體陣列
比如:
struct node
n[max];
然後用bfs的乙個通用模板:
int front=0;
int rear=0;
void bfs(int beginx,int beginy,int endx,int endy)
}
DFS與BFS的應用
題目 給出乙個n m矩陣,矩陣中的元素為0或1,稱位置 x,y 與其上下左右四個位置 x,y 1 x,y 1 x 1,y x 1,y 是相鄰的。如果矩陣中有若干個1是相鄰的 不必兩兩相鄰 那麼稱這些1構成了乙個 塊 求給定的矩陣中 塊 的個數。如 0 1 1 1 0 0 1 0 0 1 0 0 0 ...
bfs和dfs的特點
一 深度優先搜尋 dfs 的特點是 1 深度優先搜尋法有遞迴以及非遞迴兩種設計方法。一般的,當搜尋深度較小 問題遞迴方式比較明顯時,用遞迴方法設計好,它可以使得程式結構更簡捷易懂。當資料量較大時,由於系統堆疊容量的限制,遞迴容易產生溢位,用非遞迴方法設計比較好。2 深度優先搜尋方法有廣義和狹義兩種理...
dfs和bfs的總結
dfs dfs演算法是乙個對連通圖進行遍歷的演算法。它的思想是從乙個被選定的點出發一條路走到底,如果得不到目的解,那就返回到上乙個節點,然後換一條路繼續走到底,直到找到目的解返回或者全部遍歷完返回乙個事先定好的值。dfs一般借用遞迴完成整個演算法的構造。dfs演算法的一般框架經我總結大致為下 int...