一,master公式
其中:
T(N)——母问题数据量级别为N
T(N/b)——子问题数据量级别均为N/b
a——子问题被调用了多少次
O(N^d)——除子问题外其他算法的时间复杂度
二,使用条件
子问题等规模
三,答案归类
四,示例
求数组中最大元素的函数:
int process(int arr[],int l,int r)
{
if (r == l)
{
return arr[l];
}
int mid = l + ((r - l) >>1 );
int lmax = process(arr, l, mid);//子问题1时间复杂度为N/2
int rmax = process(arr, mid+1, r);//子问题2时间复杂度为N/2
return (lmax > rmax) ? lmax : rmax;
}
该函数中
子问题时间复杂度均为N/2——a=2
被调用两次——b=2
除子问题外其他过程时间复杂度为1——d=0
带入公式即可求解。