算法第5章作业
2018-12-24 13:18 葡萄葡萄葡葡萄 阅读(158) 评论(0) 收藏 举报1、对回溯算法的理解
回溯法可以系统地搜索一个问题的所有解或任意解,它按照深度优先策略,从根节点出发搜索解空间树。搜索至某一节点时,先判断该节点是否符合条件,如果不符合则返回父节点,否则,继续按深度优先策略搜索,如果求一个问题的一个或多个解,则应考虑设置约束函数和限界函数来降低算法的时间复杂度,提高算法的效率。
它的主要步骤是1、构建问题的解空间
2、确定易于搜索的解空间结构
3、设置合适的剪枝函数
4、按深度优先策略进行搜索。
2、请说明“子集和”问题的解空间结构和约束函数
问题的解空间为n层的二叉树,每一层代表集合中的一个数,标记为0则被选中,标记为1则不选,遍历这棵树,一旦和为目标值则停止并打印被选中的数。
约束函数:到t层时,若sum的值加上当前节点值大于目标值,则不选当前节点。
3、请说明在本章学习过程中遇到的问题及结对编程的情况
在解题时剪枝函数处理得不是很好,后来和队友讨论后重新写剪枝函数。发现递归还是有要想清楚的地方。和队友讨论问题能加深印象以及可以更好理清思路。
浙公网安备 33010602011771号