算法02 --- 分治

概述

  分治,就是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。

  分治法常常跟递归一起使用,借助递归,我们可以方便地将问题分解再将结果合并。 

解题思路:

  1. 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
  2. 递归:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
  3. 合并:将各个子问题的解合并为原问题的解。

 

常见应用场景:

  二分搜索
  大整数除法
  Strassen矩阵乘法
  棋盘覆盖
  归并排序
  快速排序
  线性时间选择
  最接近点对问题
  循环赛日程表
  汉诺塔

 

posted @ 2019-10-23 21:32  飞翔在天  阅读(159)  评论(0编辑  收藏  举报