分治算法

​ 分治算法分为 “分” 和 “治” 两个部分,所谓的分就是寻找分割点,然后对问题划分成相同的子问题,但是问题的规模变小了,这些步骤其实就是使用递归来完成的。之后就是治的问题,也就是递归里面具体的内容。最后一步就是把所分的结果要合并成为一个完整的结果。

​ 一个例子就是求出逆序数对,这个就是分治法来计算,首席我们分就是中间划分,分别求左右的两边的逆序数对,然后还需要加上横跨中间的逆序数对即可完成。重点就是横跨中间的逆序数对,中间的如果直接暴力枚举就会出现 n 平方的,所以我们首先对两边分别排序,然后在进行计算,这样复杂度就变成了 n/2 复杂度。