概念
将问题实例划分为同一个问题的几个较小实例,最好拥有相同规模
对每一个较小规模的实例进行求解
如果需要则以某种方式合并这些小问题的解得到原问题的解
归并排序
将列表分为两个大小最接近的部分,递归地拆分
返回上一层递归时,将每两个小部分合并为有序的部分
继续返回给上一层递归,直到合并为完整列表
快速排序
快速排序通过一个切分元素将数组分为两个子数组,左子数组小于等于切分元素,右子数组大于等于切分元素,将这两个子数组排序也就将整个数组排序了。
折半查找
递归
非递归
二叉树遍历及其相关特性
对二叉树的操作变为对左右子树分别操作
计算二叉树高度
二叉树遍历(查找)折半查找
不是所有二叉树的操作都体现分治思想
大整数乘法和Strassen矩阵乘法
分治解最近对问题
时间复杂度:O(nlogn)
分治解凸包问题
找到某种方式将点集合分为两个部分,且两个部分可以使用相同的方法求解
某一个维度上的最大值与最小值一定是顶点
顶点的连线