搜索与回溯是计算机阶梯中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,如此反复进行,直至得到解或证明无解。
如迷宫问题:进入迷宫后,先随机选择一个方向前进,一步步向前试探前进,如果碰到死胡同,说明前进方向已经无路可走。这时,首先看其他方向是否还有路可以走:如果有路可走。按此原则不断搜索与回溯,直到找到新的出路或从原路返回入口处直到无解为止。
递归回溯算法框架【一】
int search(int k){
for(int i=1;i<=算符种数;i++)
if(满足条件)
{
保存结果
if(到目的地) 输出解;
else search(k+1);
恢复:保存结果之前的状态{回溯一步}
}
}