代码改变世界

算法第三次作业:对分治法的体会

2019-10-10 10:51  ..#  阅读(481)  评论(0编辑  收藏  举报

分治法实质是分而治之,即把大的问题分解成数个小问题,然后求解,最后设法合并。一般情况下,子问题的规模都是相等的,因此我们可以用KO(n/m)+O(n)(子问题+合并)配合主定理求时间复杂度。
学完分治法后,我发现了几点:
1.这门课比较依赖以前数据结构的算法,当然算法课其实是在更高的角度看问题(当然以前数据结构的老师也给我们拓展过一些实质上的东西)。原本数据结构课里面一些松散的算法,到了这门课,就可以把它们以方法的形式总结起来。
2.遇到一些不会的问题,想各种办法把问题自大化小从而解决,也许人生也是如此吧,遇到一些大的问题可以化为很多小问题,然后一步一步解决。
3.后面学的动态规划(备忘录和填表)实质还是分治,只是在分治时发现子问题重复而出现的一种解决方案。

关于组队编程:

这一次组队算是真正的参与组队编程【去年和我组队的是一个ACM的dalao】,当然说是组队,实际上三道实验题里面两道都是我自己打的代码然后跟他讲【他一开始还没怎么听懂】。不过我在第三题想不到思路时候,他给我提供了第三题的思路,我回去之后在他的帮助下成功做出了第三题。总之这次组队其实收获蛮大的,希望下一次组队也能这样子好= =