1.我对回溯算法的理解
回溯法与前几章我们所学的其他算法相同,都是求解问题最优解的算法,基于深度优先策略求解组合数较大的问题;
回溯法解决问题的步骤:对给出的问题建立一个解空间树,深度优先搜索遍历每个结点并对每个结点所得问题解进行比较,从而得到最优解。
回溯法注意事项:回溯法在求问题的所有解时,要回溯到根,且根节点的所有子树都已被搜索到才结束,我们还可以通过剪枝减少不必要的遍历、节省算法的运行时间。
2.学习《算法分析与设计》课程的收获
一个编程项目的核心就是它的算法,而这门课程能够帮助我们深入学习了解这个核心。
本学期着重学习了分治法、动态规划法、贪心法、回溯法等经典常用的算法,也了解了一些像拉斯维加斯算法这样有趣的算法。
我学习这门课程最大的收获就是面对一个编程题时能真正做到明白自己做出这道题用的是什么方法,而不是像之前那样单纯的暴力求解,培养了我们思考和解决问题的能力。
甚至在解决一个问题时我能选择最适合当下情况的算法,如用不同算法解决0-1背包问题。
3.你在学习过程中曾遇到了哪些困难,希望老师和助教及时给予帮助
动态规划法备忘录的二维数组用法和意义
回溯法剪枝不彻底
4.对本门课程的教学有哪些建议
多加点互动环节
浙公网安备 33010602011771号