第二章总结和结对编程情况

第二章总结

1.递归

1.1递归是什么:递归是自己定义自己,直接或间接地调用自己的算法。

1.2递归常见类型:多变元递归、多步递归、嵌套递归、联立递归。

1.3优点:可读性强,结构清晰,为调试提供很大便利;

  缺点:运行效率较低,空间复杂度和时间复杂度都耗费比较大。

2.分治

2.1分治是什么:把一个问题分成若干个相同的子问题,对子问题进行求解。

2.2.分治思想三个阶段:一个较大问题划分为多个子问题、求解子问题、合并子问题的解,形成原始问题的解。

2.3时间复杂度:当 n = 1 时,T(n) = O(1);当 n > 1 时,T(n) = kT(n / m)+ f(n)。

2.4例子应用:大整数的乘法、Strassen矩阵乘法、棋盘覆盖、合并排序、快速排序。

2.5自己对分治思想的体会:看代码的时候把例子的用到分治思想理解了就觉得很好用,但是自己很难去实现分治算法的三步走,一是经验太少,怎么划分问题没有头绪;二是解决问题和合并解的时候思路不清晰,写代码的时候容易把自己绕晕。另外对求空间复杂度记不住,看一次记一次,没有理解透彻。自己尝试先理解代码然后背代码,再试着自己解释代码。

结对编程情况

由于自己对算法有点弱,和队友编程时两个人的思路都比较混乱,然后互相可能都不能理解队友的思路,两个人都有点难受。不过相比于一个人自己编程,会有被督促的感觉,这点算是对我来说比较好的一个方面。

猜你喜欢

转载自www.cnblogs.com/Epher/p/11674807.html