算法导论阅读笔记——分治法与归并排序应用的数学分析
1.分治法对归并排序的应用
对于归并排序问题需要的步骤如下:
(1)将规模较大的问题分解为较小规模问题——分解
(2)计算较小规模问题——运算(此处可能用到递归 分解为更小规模的问题)
(3)将较小规模的问题归并为较大规模问题——归并(同样可能用到递归)
2.分治法的复杂度分析
分治法的复杂度=较小问题复杂度之和+分解过程的复杂度+归并过程的复杂度
可推导出其递归式
其中(1)(2)条为分治法的假设条件 第三条为分治法的地推公式
3.应用分治法推导归并法的递推公式
4.由归并法递推公式推导归并法复杂度
主要思路:将复杂度递推公式分解为两项 即cn项与小规模问题项 (T(n/2)项) 多次分解 最后将小规模问题项分解为复杂度为O(1)的多个子项 最后计算cn与小规模问题项子项复杂度之和 则可得归并法复杂度
*至此归并法的数学原理证毕 *