分治法(Divide and Conquer)

壤驷棋
2023-12-01

分治法即『分而治之』,把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。

这个思想是很多高效算法的基础,如排序算法(快速排序,归并排序)等。

分治法的三个步骤是:

  1. 分解(Divide):将原问题分解为若干子问题,这些子问题都是原问题规模较小的实例。
  2. 解决(Conquer):递归地求解各子问题。如果子问题规模足够小,则直接求解。
  3. 合并(Combine):将所有子问题的解合并为原问题的解。

分治法的经典题目:

二分搜索
大整数乘法
Strassen矩阵乘法
棋盘覆盖
归并排序
快速排序    
循环赛日程表
汉诺塔

 

转载于:https://my.oschina.net/ZZKAJ23/blog/861416

 类似资料: