分治·减治·变治

A. 分治法(Divide and Conquer)

算法设计思想:
1. 分解:把问题递归分解为两个以上的子问题(子问题:与原问题性质相同,规模较小);
2. 求解:求解子问题(不再分解)
3. 合并:合并子问题的解,得到原问题的解;

相关算法:
1. 合并排序
2. 快速排序


B. 减治法(Decrease and Conquer)

算法设计思想:
1. 减小规模:递归减小子问题的规模(一个子问题)
2. 求解:求解子问题(不再减小规模)
3. 扩展:扩展子问题的解,获得原问题的解

与分治法的区别:
分治法:求解多个子问题,合并子问题解
减治法:求解一个子问题,扩展子问题解

减治法的分类:
1. 减常量法:减小常量规模,常为 1(减一法)
2. 减常因子法:减小常因子规模,常为 2(减半法)
3. 减可变规模法:每次减小的规模不同

相关算法:
1. 折半查找
2. 插入排序
3. 拓扑排序


分治·减治·变治


C. 变治法(Transform and Conquer)

基于变换的思想,把问题为更简单、更易求解的问题
变:变换问题
治:求解问题

相关算法:
1. 预排序
2. 堆排序