寬度優先搜尋

2022-09-02 08:39:14 字數 486 閱讀 9980

寬度優先搜尋也是搜尋的手段之一。它與深度優先搜尋類似,從某個狀態出發探索所有可以到達的狀態。

const int inf = 100000000;

//使用pair表示狀態時,使用typedef會更加方便一些

typedef pair p;

char maze[max_n][max_m+1]; //表示迷宮的字串陣列

int n, m;

int sx, sy; //起點座標

int gx, gy; //終點座標

int d[max_n][max_m]; //到達各個位置的最短距離的陣列

//4個方向移動的向量

int dx[4] = , dy[4] = ;

//求從 到的最短距離

//如果無法到達,則是inf

int bfs() {

queueque;

//把所有的位置都初始化inf

for (int i = 0; i

寬度優先搜尋

include using namespace std const int n 700 const int inf 0x3f3f3f3f int dir 10 int n,a,b,ans 1000000 flag 0 int floor n struct node int check node tm...

寬度優先搜尋

寬度優先搜尋演算法 又稱廣度優先搜尋 是最簡便的圖的搜尋演算法之一,這一演算法也是很多重要的圖的演算法的原型。dijkstra單源最短路徑演算法和prim最小生成樹演算法都採用了和寬度優先搜尋類似的思想。其別名又叫bfs,屬於一種盲目搜尋法,目的是系統地展開並檢查圖中的所有節點,以找尋結果。換句話說...

深度優先搜尋與寬度優先搜尋

深度優先搜尋類似於樹的先序遍歷,從每個頂點開始深度優先遍歷,對該分支路徑深入遍歷到不能再深入為止,返回上層,若上一層有新的分支路徑,繼續遍歷該分支,直到所有點都被訪問 1 訪問該頂點,並標記為已訪問 2 if 該頂點的連線點未被訪問過 遞迴呼叫dfs 3 重複 2 直到該頂點的所有連線點都被訪問 t...