1.【2参数】在数组中搜索特定的数:
两个(形式)参数分别为: 数组的有效长度 、 搜索的目标数
(数组的有效长度不一定是数组的索引上限长度)
int bs(int n, int m, ... ){ // n 为数组 a[] 的有效长度,m 为搜索目标数
int low = 0, high = n - 1, res;
while(low <= high){
int mid = low + high >> 1;
if(a[mid] == m){
res = mid; // 找到 m 的位置
...
}
else if(a[mid] < m) low = mid + 1;
else high = mid - 1;
}
return res;
}
2.【1参数】
bool check(int x) {
···
if (···) return true;
···
return false;
}
int main(){
···
int l = ···, r = ···, res;
while (l <= r) {
int mid = l + r >> 1;
if (check(mid)) {
res = mid;
···
}
else {
r = mid - 1;
···
}
}
}
【待完成】