算法第二章总结

第二章总结:对分治法思想的体会与结对编程情况汇报

 

一、分治法思想的学习体会

1. 分治法,照着书本的解释,分而治之的思想,把一个难以解决的较大的问题,拆分成一些规模小的相同问题,然后把这些小规模的问题逐个解决,大的问题自然就解决了。按我的理解,就是比如说一个公司的管理,大的问题就是整个公司的管理问题,如果说拆分为每个部门的管理,每个部门的管理都做好了,整个公司,也就是大的问题就解决了,这就是分治法的思想。运用于编程上,就比如快速排序算法,只需要找出每次数字移动的规律,再运用递归的方式,即可完成。

2. 学会分治法,便可以把复杂的问题简单化,这是一种能力,一种对复杂问题的分析能力。看到一个复杂的问题,可以先分析下,是否可以拆分成多个小规模相同的问题,然后逐个击破,最后解决难题。分治法可以降低时间复杂度,提高运行的效率,也方便他人理解算法思想。

 

二、结对编程情况汇报

上次实验课的上机,很久没有实验室打代码了,第一次体验结对编程。和伙伴一起看题做题,学会了递归法,所以一看到第一题是二分搜索就直接用了递归法做,但因为题目的特殊限制,需要统计比较次数,一直卡在这卡了很久,询问别人,发现大家很多都是用迭代法做。最后选择先做第二题,是二分搜索的改进,依旧用递归法,成功了。最后没有时间做第三题。两题都用了递归的思想,感受到了分治法的魅力,使得问题简单化。关于第一题,最后我们尝试了迭代法,也还是出错,发现与方法无关,求助同学,最后知道是哪一步出了差错,最后成功了,并且也重新试了递归法,也是改了那个差错,成功完成。对于结对编程比较满意,因为可以彼此发现一些编程时候的小错误,看对方打代码和对方看自己打代码都能有所提升。因为这是两个人不同的思维模式,看问题和关注点不一样,甚至性格的不一样,会导致细心程度的差异,所以对于编程时则会有碰撞,就可以改正个人不好的方面,从而共同进步。

你可能感兴趣的:(算法第二章总结)