主方法,递归算法时间复杂度的计算
一个分治法将原问题分解成 a 个问题规模为 n/b 的子问题。
则
T(n)={ O(1) ,n = n0 (n0 为阈值)
{ a·T(n/b) + f(n) ,n>n0
前面半部分为排序需要的时间复杂度,后面的f(n)=n^k为合并所需要的时间复杂度
则时间复杂度为:
(1)当 f(n) >n^ log a b 时,T(n)=θ( f(n) )
(2)当 f(n) <n^ log a b 时,T(n)=θ( n^log a b )
(3)当 f(n) =n^ log a b 时,T(n)=θ( n^log a b · log n)