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