算法第二章总结
第二章总结:对分治法思想的体会与结对编程情况汇报 一、分治法思想的学习体会 1. 分治法,照着书本的解释,分而治之的思想,把一个难以解决的较大的问题,拆分成一些规模小的相同问题,然后把这些小规模的问题逐个解决,大的问题自然就解决了。按我的理解,就是比如说一个公司的管理,大的问题就是整个公司的管理问题,如果说拆分为每个部门的管理,每个部门的管理都做好了,整个公司,也就是大的问题就解决了,这就是分治法的思想。运用于编程上,就比如快速排序算法,只需要找出每次数字移动的规律,再运用递归的方式,即可完成。 2. 学会分治法,便可以把复杂的问题简单化,这是一种能力,一种对复杂问题的分析能力。看到一个复杂的问题,可以先分析下,是否可以拆分成多个小规模相同的问题,然后逐个击破,最后解决难题。分治法可以降低时间复杂度,提高运行的效率,也方便他人理解算法思想。 二、结对编程情况汇报 上次实验课的上机,很久没有实验室打代码了,第一次体验结对编程。和伙伴一起看题做题,学会了递归法,所以一看到第一题是二分搜索就直接用了递归法做,但因为题目的特殊限制,需要统计比较次数,一直卡在这卡了很久,询问别人,发现大家很多都是用迭代法做。最后选择先做第二题,是二分搜索的改进,依旧用递归法,成功了。最后没有时间做第三题。两题都用了递归的思想,感受到了分治法的魅力,使得问题简单化。关于第一题,最后我们尝试了迭代法,也还是出错