算法描述:将一组无序数组,不断的二分之一,然后再讲小数组排好序,最终合并成 一个大数组,算法中经常用二分法来进行处理问题,这样可以是问题简单,而且最终 都有可能转化成为树的问题,是算法的时间复杂度为 O(nlgn).
- 分:将数组以二分之一进行分解
- 治:小数组进行排序,并合并
经典的二分治理方法
- 算法编写的过程中,一定要注意边界问题,哪里是治理问题的边界很重要,要考虑 所有的边界情况,否则程序无法正常运转。
- 比如分数组时的边界在哪里 ?
- 合并的数组的边界在哪里 ?
- 合并数组是两个数组谁先处理完毕 ?
所以理解算法和写算法是完全两回事