T(n) = T(n/3) + T(2n/3) + n
其递归树如下图所示:
可见每层的值都为n,从根到叶节点的最长路径是:
因为最后递归的停止是在(2/3)kn == 1.则
于是
即T(n) = O(nlogn)
总结,利用此方法解递归算法复杂度:
f(n) = af(n/b) + d(n)
1.当d(n)为常数时:
2.当d(n) = cn 时:
3.当d(n)为其他情况时可用递归树进行分析。
T(n) = T(n/3) + T(2n/3) + n
其递归树如下图所示:
可见每层的值都为n,从根到叶节点的最长路径是:
因为最后递归的停止是在(2/3)kn == 1.则
于是
即T(n) = O(nlogn)
总结,利用此方法解递归算法复杂度:
f(n) = af(n/b) + d(n)
1.当d(n)为常数时:
2.当d(n) = cn 时:
3.当d(n)为其他情况时可用递归树进行分析。