算法第五章作业及学期总结
1. 你对回溯算法的理解
一开始学习的时候很难理解回溯算法,是因为我没有搞懂它一层一层往下走又往回走的关系。听完老师讲的课之后,自己又找了一下资料,看看别人的代码,才自认为对回溯算法有了一个更深一点的理解。
回溯算法有点类似与枚举,按照选优条件,向下探索,当探索到某一过程不满足这个条件的时候,就退回去,尝试另一条路径。通过这样的方式找到一个最优解。
回溯算法的基本思想就是,在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含(剪枝过程),则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
2. 你学习《算法分析与设计》课程的收获
学习《算法分析与设计》这门课程,最直观的可能就是学习到了几种不一样的算法,现在在编程的时候,就不单单是通过这个题,先考虑是不是可以用上什么算法让这段代码更优,让这个解题的效率更好一点。
3. 你在学习过程中曾遇到了哪些困难,希望老师或助教及时给予帮助。
在学习这几中算法的时候,给我感觉比较难理解的是动态规划和回溯算法。回溯算法对我来说就有点难,就算大概了解了这个算法的思想,但是做题的时候还是有点懵。应该是后面学习的时候时间有点紧,自己没有把更多的课外时间放到这个上面来。
4. 你对本门课程的教学有哪些建议
我感觉多做题是很重要的,就算理解一个算法的思想,但是如果不做题,很难对这个算法有一个深刻的理解。
结对编程对我来说也挺合适的,更有助于我们表达自己的想法,通过交流我们可以找到一个更有效率的办法。