第二章作业
分治法
基本思想
将一个规模为 n 的问题分解为 k 歌规模较小的子问题,这些子问题 互相独立 且与 原问题相同 。
- 分解
- 互相独立
- 与原问题相同
用法例子
二分搜索
- 基本思想:把一个有序数组划分为两半,取a[n/2]与 x 进行比较。
- 最坏时间复杂度为 O(logn)
大整数的乘法
矩阵乘法
棋盘覆盖
合并排序
- 先将数组分为两半排序,再将其两半进行排序
- 时间复杂度:O(nlogn)
快速排序
- 分解——递归求解——合并
- 时间复杂度:O(nlogn)
体会
- 分治思想很有用,在一些情况下可以较快速度的解决问题,但是有的时候一道题目要想到用分治,使用分治思想解决还是有难度的,需要学会去分析问题找出联系
- 在思考题目的时候,利用分治思想必须先弄清楚各种条件,要怎样划分问题规模。划分问题规模很重要!!
- 需要考虑求出划分的界限以及范围,在实践的时候由于有一道题没有想清楚界限一直报错,以后一定要思考清楚再进行编程
结对编程情况汇报
面对问题我们两个人会先分开思考问题,然后再一起讨论问题,吧大概思路确定了之后我开始编程,朱雨琪在一边检查我代码的规范与正确性一边解读代码,合作十分愉快。