算法第五章作业及学期总结
算法第五章作业及学期总结
1. 你对回溯算法的理解
实现回溯法首先得构造解空间树(子集树和排列树),然后以深度优先的方式搜索解空间,递归或迭代;并且要设计剪枝函数避免无效搜索,使用约束函数,剪去不满足约束条件的路径或使用限界函数,剪去不能得到最优解的路径。
回溯法要注意的点有:结束条件,即什么时候会结束该分支的回溯,否则会陷入无限循环。
还有就是下步执行,下一步所有可能的操作是什么,该操作对应到DFS递归函数里的参数变化会是什么。
2. 你学习《算法分析与设计》课程的收获
本学期通过学习《算法分析与设计》课程,主要学习并掌握了分治法、动态规划法、贪心算法、回溯法四大算法,同时也了解了随机化算法、分支界限法等算法。
学习了这些算法,在拿到一道编程题后,不再只是直接暴力求解,而是会去思考运用什么样的算法可以更快更好的求解。在同样的一道题目中,可能可以用许多种办法去求解,不同的方法会得到不同的时间复杂度,运行时间、效率。
学会了从算法的角度去思考并解决问题,对于自身的解题能力会有很大的提升。
3. 你在学习过程中曾遇到了哪些困难,希望老师或助教及时给予帮助。
在学习四大算法的过程中,一开始对动态规划算法的递归方程不是很理解。
比如用动态规划法求解0-1背包问题,如何递归地定义最优解,填表的顺序是怎样的,为什么递归方程要这样写,代表着什么意思?都理解的比较的模糊不清。但是经过查阅资料,仔细阅读再自己体会之后,就对用动态规划法求解0-1背包问题有了比较好的理解。
在平时解题过程中,有一些过不了的测试点很困扰我。在PTA或者是期中考试的LPOJ上解题,有测试点过不了都没有具体的反馈,这样修改起代码来就比较的费时和费精力。
4. 你对本门课程的教学有哪些建议
整体都可以,讲解清楚,课程安排得当。没有什么大问题,无建议。

浙公网安备 33010602011771号