算法第五章作业及学期总结

1. 对回溯算法的理解

  回溯算法算是一个比较暴力的算法,简单来说就是遍历所有可能性,一条路走到底,万一发现走不通就回退一步重新走,然后从所有可能结果中找出最优的解,然而在实际应用中,我们可以在算法内加入剪枝函数进行剪枝,减去那些不再优于最优解或者不可能找到答案的分支,这样可以大大优化算法的时间复杂度。

  一般步骤:

  1、 针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。
  2 、确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间 。
  3 、以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。

2. 学习《算法分析与设计》课程的收获

  在学习了这门课程之后,我熟悉掌握了分治法、动态规划法、贪心算法、回溯法这些常用的经典算法,这对我打题有很大帮助,以前我看到程序题经常会一脸懵,不知如何下手,但现在学习了算法之后,至少我可以从算法入手,思考这道题目可能会用到哪种算法,然后借助算法实现题目要求;另外,我发现一道题目有时可以用多种不同算法求解,找到不同解法其实是很有趣味性的一个过程,这也让我对代码更加感兴趣了。

3. 在学习过程中曾遇到了哪些困难,希望老师或助教及时给予帮助。

  有时候在上课时,算法思想明明可以理解,但是到了真正使用去打代码的时候就会变得糊里糊涂,可能会钻牛角尖。 

4. 对本门课程的教学有哪些建议

  本门课程我认为没有大问题,如果能够更详细的讲解一下作业代码题目的实现就更好了。

posted @ 2020-12-20 10:59  郑辰  阅读(118)  评论(0编辑  收藏  举报