算法第二章总结
对分治的学习与理解:
分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
分治算法可以分三步走:分解 -> 解决 -> 合并
- 分解原问题为结构相同的子问题。
- 分解到某个容易求解的边界之后,进行递归求解。
- 将子问题的解合并成原问题的解。
对二分的学习与理解:
二分搜索,也称折半搜索、二分查找,是用来在一个有序数组中查找某一元素的算法。它每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需要到右侧去找就好了;如果中间元素大于所查找的值,同理,右侧的只会更大而不会有所查找的元素,所以只需要到左侧去找。相对于顺序搜索,二分搜索会在每次查找时把区间减半,也不需要遍历每一个数,最多需要logN次查找,在竞赛中也时常会用到。
结对编程情况汇报:
合作愉快,代码也慢慢的规范起来,在打题时代码也开始慢慢的变得容易维护起来。对于自己的见解也能很好的提出并互补,期待下一章的上机。