您的位置:首页 > 其它

基础算法学习笔记(一)----回溯法

2007-08-16 16:31 423 查看
回溯法是一种设计精巧的蛮力搜索法。它采用了深度优先的搜索策略

基本思想

回溯法的基本思想用伪代码形式表现如下

S  = {初始问题域}

   WHILE s <> {} DO

     BEGIN

             取出S中一个元素,设为s;

             IF s 可以安全使用 THEN

                  BEGIN

                         设定 s 为已使用;

                         IF 问题还没有解决 THEN

                             用缩小后的问题域让S调用自己

                         ELSE

                            问题解决,显示答案;

                        把s还原为未使用状态

                  END

        END

实现关键

回溯法一般写成递归形式。在实际使用时对其优化主要是在进行选择后如何最大限度的缩小问题域。

应用举例

回溯法经典应用有:迷宫搜索,N后问题,骑士巡游,正则表达式匹配等等。在用递归实现的算法中,几乎都能看到回溯的影子。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息