『什么是搜索』
百度百科的定义
搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。
【搜索树】
- 将搜索的过程中每一步的状态变成树的一个结点
- 根结点为搜索的初始状态
- 搜索是不断拓展这棵树,直到找到目标状态为止
『深度优先搜索』
顾名思义,优先向搜索树"深"层搜索的搜索的算法.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。
主要算法过程:对于一个合法的状态A,对于其所有的子状态(搜索树的儿子结点),选择一种进行探索,递归这一过程,直到到达叶子结点或目前状态不合法,则回溯到父亲结点,对另一种子状态进行搜索。
【伪代码】
void dfs(状态A){
if(A不合法)
return;
if(A为目标状态)//判断边界
输出;
if(A不为目标状态但是合法)//继续下一步,递归调用
dfs(A+1);