分治法的算法复杂性计算
- 分治法一般是用递归实现的,且往往是均分,最常见的就是二分算法。
- 而在计算分治法的算法复杂性时,我们往往能得到这样一个关于复杂性公式T(n)的递推式:
- 其中,
- n为数据规模,
- k为分治后子规模运算的数量,这里要注意k并不就等于分治划分数m,可以理解为 原本n规模的运算 被划分为 k个n/m规模的运算。
- m为规模的划分数,一般为二分,即m=2。
- f(n)为分治后需要进行的额外计算复杂度,一般为将多个划分连接起来的运算。
-
对于此类计算,我们可以得到以下计算公式:
-
这样我们在分析分治递归算法时便能很快得到其算法复杂性。