分治算法,大家都知道就是“分而治之”,把一个复杂的问题分解成两个或者更多的相同或类似的子问题,再把子问题分成更小的子问题。。。直到最后子问题可以简单的直接求解,原问题的解就是子问题的解得合并。这个算法看似很简单,难点在于如何分解复杂问题。这个技巧是很多高效算法的基础:
- 二分搜索
- 大整数乘法
- 棋盘覆盖
- 归并排序
- 快速排序
- 线性时间选择
- 最接近点对问题
- 循环赛日程表
- 汉诺塔问题
。。。
分治算法,大家都知道就是“分而治之”,把一个复杂的问题分解成两个或者更多的相同或类似的子问题,再把子问题分成更小的子问题。。。直到最后子问题可以简单的直接求解,原问题的解就是子问题的解得合并。这个算法看似很简单,难点在于如何分解复杂问题。这个技巧是很多高效算法的基础: