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