第二章作业

分治法

基本思想

将一个规模为 n 的问题分解为 k 歌规模较小的子问题,这些子问题 互相独立 且与 原问题相同

  • 分解
  • 互相独立
  • 与原问题相同

用法例子

二分搜索

  • 基本思想:把一个有序数组划分为两半,取a[n/2]与 x 进行比较。
  • 最坏时间复杂度为 O(logn)

大整数的乘法

矩阵乘法

棋盘覆盖

合并排序

  • 先将数组分为两半排序,再将其两半进行排序
  • 时间复杂度:O(nlogn)

快速排序

  • 分解——递归求解——合并
  • 时间复杂度:O(nlogn)

体会

  1. 分治思想很有用,在一些情况下可以较快速度的解决问题,但是有的时候一道题目要想到用分治,使用分治思想解决还是有难度的,需要学会去分析问题找出联系
  2. 在思考题目的时候,利用分治思想必须先弄清楚各种条件,要怎样划分问题规模。划分问题规模很重要!!
  3. 需要考虑求出划分的界限以及范围,在实践的时候由于有一道题没有想清楚界限一直报错,以后一定要思考清楚再进行编程

结对编程情况汇报

面对问题我们两个人会先分开思考问题,然后再一起讨论问题,吧大概思路确定了之后我开始编程,朱雨琪在一边检查我代码的规范与正确性一边解读代码,合作十分愉快。

posted @ 2020-10-09 17:30  iccyyxx  阅读(112)  评论(0编辑  收藏  举报