分治法基本内容
基本思想
规模较大的问题分解为规模较少的问题,较小的问题分解成更小的问题,直到容易解决为止
- 对较小问题解决,是继续分解————递归方程
- 直到容易解决为止(通常一个元素),边界条件
可以无限变小直到自己会做为止。
分治步骤
- 分解:将原问题分解成规模较小的子问题
- 原问题可以被分为多个子问题 P1,P2,…,PK
- 子问题形式需要和原问题一致
- 解决:通过递归的方式解决子问题
- P1,P2 独立解,以及 P1,P2 共同相关的解
- 合并,对子问题的解进行合并,形成原问题的解。
快速排序
分解
选择一个主元素 k,将原数组分解为两个子数组,小于主元素的所有元素组成了一个子数组,大于主元素的所有元素组成了另外一个子数组。
[<=k] [>k]
解决
对子数组进行递归调用解决
合并
通过上述步骤,对已完成原数组的排序,无需合并操作
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 易函123!
评论