递归方程
归并排序算法的递归方程
这个方程的含义是如果只有 1 个元素的数组需要做归并排序,那么在常数时间内就能得到有序数组。
如果是 个元素的数组需要做归并排序,那么需要将问题一分为二,每个子问题各需要 的时间。解决子问题以后,当前问题转化为合并有序数组问题,两个指针会不重复扫描每个元素一遍,复杂度为 。
可以使用逐层展开法和变量替换法求解 ,但是比较麻烦,仅作了解即可。
Master 定理
比较 的阶和 的大小:
- 若 大,则
- 若 大,则
- 若 ,则
对于归并排序,,,则 。而 ,它们的阶数相当。因此归并排序的时间复杂度 。
Master 定理的证明
Last updated on