9.优先搜索的对比
概念(是什么)
深度優(yōu)先搜索(depth first search)和廣度優(yōu)先搜索(breadth first search)都是圖或樹(shù)的一種遍歷,不同的是遍歷順序不同。
數(shù)據(jù)結(jié)構(gòu):
深度優(yōu)先搜索(DFS):棧
廣度優(yōu)先搜索(BFS):隊(duì)列
過(guò)程
深度優(yōu)先搜索(DFS):
1.先把任意位置入棧。
2.每次從棧中彈出一個(gè)元素,但是它出棧必須把它相鄰的所有元素入棧。
3.重復(fù)2直到找到想找的元素或者遍歷完整個(gè)樹(shù)或圖。
廣度優(yōu)先搜索(BFS):
1.先把任意位置放到隊(duì)尾。
2.每次出隊(duì)一個(gè)元素,但是它出棧必須把它相鄰的所有元素入隊(duì)。
3.重復(fù)2直到找到想找的元素或者遍歷完整個(gè)樹(shù)或圖。
從樹(shù)上來(lái)理解搜索順序
**深度優(yōu)先搜索(DFS):**先搜索樹(shù)的深度,直到搜索到樹(shù)的子葉節(jié)點(diǎn)再回溯回去搜索。
**廣度優(yōu)先搜索(BFS):**先搜索樹(shù)的層,每一層搜索完再搜索下一層。
適用范圍:
**深度優(yōu)先搜索(DFS):**在已經(jīng)樹(shù)的深度下,且樹(shù)的體系相當(dāng)龐大的情況下使用深度搜索。
**廣度優(yōu)先搜索(BFS):**在未知樹(shù)的深度的前提下,優(yōu)先使用廣度搜索。
總結(jié)
- 上一篇: *8.哈希冲突是什么?以及如何解决哈希冲
- 下一篇: 10.图的深度优先遍历序列是否唯一?为什