算法导论 日记 2.3-5
// p为起始点,r为终点,v为寻找的值。
public static int binarySearch(int[] a, int p, int r, int v) {
int range = r - p;
if (range > 0) {
int q = (p + r) / 2;
if (a[q] == v) {
return q;
} else if (a[q] > v) {
return binarySearch(a, p, q - 1, v);
} else {
return binarySearch(a, q + 1, r, v);
}
} else {
if (a[p] == v) {
return p;
} else {
return -1;
}
}
}
暂时默认NIL是-1了。