10模型
int binary_search(int *arr, int head, int tail) {
int l = head, r = tail;
while (l < r) {
int mid = (l + r + 1) >> 1;
if (arr[mid] >= key) r = mid - 1;
else l = mid;
}
}
01模型
int binary_search(int *arr, int head, int tail) {
int l = head, r = tail;
while (l < r) {
int mid = (l + r) >> 1;
if (arr[mid] <= key) l = mid + 1;
else r = mid;
}
}
小数二分
#define INF 0.000001
double binary_search(double *arr, doulbe head, double tail) {
double l = head, r = tail;
while (r - l > INF) {
int mid = (l + r) / 2;
if (arr[mid] != 1) r = mid;
else l = mid;
}
}