下面是引用 csr 於 2011-07-20 16:59 發表的 : 
BFS(廣度優先搜尋)
DFS(深度優先搜尋)
是否可請教大大
以上兩項是什麼意思
因為c++小弟還沒讀
所以還是一頭霧水
謝謝
我自己也不太懂,我去查了一下資料
大概了解一點,這就是演算法的選擇,好的演算法能有較高的效率、較好的結果
例如 CS 的 BOT(虛擬電腦機器人),在不同地圖時會 自動演算最近的距離一樣 (要救人質、拆炸彈),而產生 nav 檔案
我看大部分都是用 A* 演算法,不過效率佳不一定有好的結果
CS 的 BOT 在 3D 垂直部分作的非常不好,例如 cs_italy 救人質地圖中,從1樓往2樓的樓梯
演算法為了選最近距離,會讓 BOT 卡在百貨公司 小心夾頭 的那個地方,但這在 CS:S 就被重新考慮而做的比較好
所以演算法是一個好的程式的中樞呢
參考維基百科:
BFS 廣度搜索DFS 深度優先搜索參考知識+ (這個說得很清楚,我一下就瞭解了):
深度優先搜尋與廣度優先搜尋?而這個網站有介紹 A* 的運算法:
http://blog.minstrel.idv.tw/20...gorithm.html而這是我用流程圖做的展示 (Tool by
http://cac...com):
BFS :

DFS :

在 老鼠走迷宮的情況下,想到用 DFS 很正常
不過用 BFS 又是怎麼回事? 老鼠可以瞬間移動?
還有在上層的節點中,沒有走完下面又為什麼要 在同層的節點中尋找呢
還是說,老鼠已經知道迷宮長怎麼樣,卻不知道最快的走法
所以要來演算?
那麼到底哪個比較好應該要用數學來證明了
維基百科中有出現 空間複雜度、時間複雜度 的東西,應該與那個相關,我看不懂
在不同的節點環境下,兩個演算法都會有各自時間跑最快的狀況
如果分支的層數一樣的話,看起來 DFS 會比較快
如果層數很多,分支不廣,看起來 BFS 會比較快