Master定理也叫主定理。它提供了一种经过渐近符号表示递推关系式的方法。应用Master定理能够很简便的求解递归方程。算法
T(N)=a(N/b)+N^d
其中 n 表示原始的样本量, a 表示子过程发生的次数,n/b 表示子过程的样本量,d 表示除子过程其余的操做,通常为常量数组
例子ide
/** * 二分查找递归实现。 * @param srcArray 有序数组 * @param start 数组低地址下标 * @param end 数组高地址下标 * @param key 查找元素 * @return 查找元素不存在返回-1 */ public static int binSearch(int srcArray[], int start, int end, int key) { int mid = (end - start) / 2 + start; if (srcArray[mid] == key) { return mid; } if (start >= end) { return -1; } else if (key > srcArray[mid]) { return binSearch(srcArray, mid + 1, end, key); } else if (key < srcArray[mid]) { return binSearch(srcArray, start, mid - 1, key); } return -1; }
a = 2,b=2,d=0
则算法复杂度为 n^log(b,a)=ncode