标签:简便 操作 递推 start search pre 二分 有序数组 关系
Master定理也叫主定理。它提供了一种通过渐近符号表示递推关系式的方法。应用Master定理可以很简便的求解递归方程。T(N)=a(N/b)+N^d
其中 n 表示原始的样本量, a 表示子过程发生的次数,n/b 表示子过程的样本量,d 表示除子过程其他的操作,一般为常量
例子
/**
* 二分查找递归实现。
* @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)=n
标签:简便 操作 递推 start search pre 二分 有序数组 关系
原文地址:https://blog.51cto.com/13559120/2395241