算法---第二章作业

一、谈谈对分治法思想的体会

分治法的基本思想:将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同递归解决这些子问题,然后将各子问题的解合并得到原问题的解。

例如:二分搜索法,大整数的乘法,棋盘覆盖问题,合并排序,快速排序等。

体会:当我们在处理一些大规模计算或排序的问题时,编译程序很可能出现溢出或超时的情况。于是我们采用分治法来提高我们的计算效率,将一个大问题分解成许多小问题再分别求解最后合并,使计算机的资源得到合理利用,并能更快捷方便地得出计算结果。

二、结对编程情况报告

上两周的结对编程中,我与搭档每一次都是先自己研究题目,敲出题目代码思路的具体框架,然后修改代码的同时各自尝试在pta上提交确认是否答案正确。相比以往不同的是,经过老师上课对所需算法的讲解和例题,在做同类代码题的时候明显思路清晰了很多,虽然对时间复杂度和空间复杂度的分析把握还不够精准,但分治法的使用已经是有些头绪了的,感觉这也是自己和搭档的一大进步。然后如果我们两人中谁先在pta成功验证了代码,我们就会以那个人的代码为主来讨论思路和代码逻辑,最后敲定一份共同的讨论答案。以前也经历过小组编程,但2人组合总让我觉得比3人组合要方便交流些,可能还是自己不太能适应多人编程的情况吧,希望自己能早日适应于各种情况下的编程,把本章的分治法策略牢记于心,培养高效的代码逻辑和算法设计。

原文地址:https://www.cnblogs.com/heyi-777/p/13765123.html