# 回溯

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索 (opens new window)法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。 【百度百科】

回溯法是一种经常被用在 深度优先搜索(DFS) 和 广度优先搜索(BFS) 的技巧。

其本质是:走不通就回头。

# 工作原理

  1. 构造空间树;
  2. 进行遍历;
  3. 如遇到边界条件,即不再向下搜索,转而搜索另一条链;
  4. 达到目标条件,输出结果。

# 典型应用

八皇后问题 (opens new window)是应用回溯法求解的典型案例。

[数组全排列](数组全排列 | BINGO BLOG (bingoyb.github.io) (opens new window))

更新时间: 5/5/2023, 11:19:52 AM