是什么
分治是指将难以直接解决的大问题分割成多个小问题,然后逐个解决。
分割后的小问题要比最初的问题简单许多,比较容易解决,各个小问题被逐一解决之后,原来的大问题就不复存在了。
为什么
直接解决大问题,难度较大,花费的时间也比较多,闹不好到最后也解决不了。之所以会出现这样的现象,是因为规模过大的问题,其复杂度也比较高。
先将问题分割成容易控制的大小,再着手解决,这么做效率比较高。
怎么做
先对问题进行分割,然后再一个一个解决,比如下面几种做法:
- 在设计整个软件时,先将软件分割成多个可以独立设计的部分,然后对这些部分一一进行设计
- 在设计模块时,按照职责对模块进行分割
- 在设计算法时,可以像归并排序一样,先自下而上地对问题进行分割,再探讨是否能解决问题
- 在处理海量数据时,可以像MapReduce一样,先将计算分割成较小的单位,然后探讨能否把这些计算交给分布式环境并行处理