多一些Aha Time,发现技术的美妙🍺|

啊原来是这样呀

园龄:8年3个月粉丝:3关注:9

【算法基础】4.五大算法之回溯算法

参考资料

回溯算法及常见例子https://blog.csdn.net/m0_37741420/article/details/107444661

 

直观理解

深度优先搜索,先按一定的规则钻到底,发现不对回退一步走另一条路钻到底,发现不对回退一步走另一条路钻到底。。。

 

例子先行

 二叉搜索树的搜索

 

总结提炼

 1基本策略

在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯,直到探索到叶节点则结束本次遍历

2使用步骤

(1)定义问题的解空间;

(2)确定易于搜索的解空间结构;

(3)以深度优先搜索的策略搜索解空间,并在搜索过程中用剪枝函数避免无效搜索

伪代码

复制代码
 1 backtrack(开始回溯的初始条件){
 2    if(结束回溯条件){
 3     保存本趟完整的回溯结果
 4     return;
 5   }
 6   if(满足本次判断条件){
 7     记录本趟某一次的回溯结果
 8     backtrack(进行下一模块的回溯);
 9     回退本趟某一次的回溯结果
10   }
11 }
复制代码

 

拓展方向

八皇后问题
装载问题
批处理作业调度问题
背包问题

本文作者:啊原来是这样呀

本文链接:https://www.cnblogs.com/OhOfCourse/p/16897395.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   啊原来是这样呀  阅读(58)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起