深度优先和广度优先
深度优先类似于树的前序遍历,是搜索算法的一种,是常用的盲搜之一。
广度优先类似无回溯的暴力搜索,是搜索算法的一种,是常用的盲搜之一。
回溯搜索是深度优先搜索(DFS)的一种。对于某一个搜索树来说(搜索树是起记录路径和状态判断的作用),回溯和DFS,其主要的区别是,回溯法在求解过程中不保留完整的树结构,而深度优先搜索则记下完整的搜索树。为了减少存储空间,在深度优先搜索中,用标志的方法记录访问过的状态,这种处理方法使得深度优先搜索法与回溯法没什么区别了。
区别:
- 深度优先有回溯——时间换空间,广度优先无回溯——空间换时间。
- 深度优先用的数据结构是产生目标图的拓扑排序表,广度优先用的数据结构是先进先出的线性表。
- 回溯法很强,影响力大,可以单独拿出来作为一类。