代码改变世界

算法第5章作业

2018-12-24 19:36  WallWallWall  阅读(102)  评论(0编辑  收藏  举报

1.你对回溯算法的理解

回溯法是一种深度优先的选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回“回溯点”重新选择,这也就是回溯的基本过程。回溯法与穷举类似,却通过限界函数和约束函数剪枝来达到算法的精简;与动态规划类似,却以更为固定易套用的方法而更为人接受。这算法中极其重要的限界函数和约束函数让看似赘余的遍历代码变得高效简练,这也是回溯算法中使用好与坏的重要部分。

2.请说明“子集和”问题的解空间结构和约束函数

解空间结构:空间二叉树结构

约束函数:当前的left是否比原数组的最小数还小,且每一次要加入数据时判断是否比目标值大;

3.请说明在本章学习过程中遇到的问题及结对编程的情况

回溯算法部分更多的是在约束函数和限界函数部分耗费时间,这部分的思考一个人常会有所纰漏,结对编程很好的弥补了这部分问题,而愈发娴熟的配合也使我们的编程过程颇为顺利。