T(N) = a*T(N/b) + O(N^d)
估计递归问题复杂度的通式,只要复杂度符合以下公式,都可以套用此公式计算时间复杂度
例子:递归方式查找数组最大值 T(N) = 2*T(N/2) + O(1)
T(N):样本量为 N 的情况下,时间复杂度
N:父问题的样本量
a:子问题发生的次数(父问题被拆分成了几个子问题,不需要考虑递归调用,只考虑单层的父子关系)
b:被拆成子问题,子问题的样本量(子问题所需要处理的样本量),比如 N 被拆分成两半,所以子问题样本量为 N/2
O(N^d):剩余操作的时间复杂度,除去调用子过程之外,剩下问题所需要的代价(常规操作则为 O(1))