二分法查找
最编程
2024-07-07 10:10:06
...
二分法查找的思路比较容易理解,主要是在边界处理上会有一些问题。如果我们定义的时左开右开的区间,那么l=r时是可以成立的。如果中值大于目标值 ,那么目标值在左区间,r=m-1。如果中值小于目标值,目标值在右区间。l=m+1。
int dichotomySearch01(int [] nums,int target){
int l = 0,r = nums.length-1,m = l+(r-l)/2;
while (l<=r){
if(target<nums[m]){
r = m-1;//如果中值大于目标值 目标值在左区间
m = (r-l)/2;
}
else if (target>nums[m]){
l = m+1;//如果中值小于目标值 目标值在右区间
m = l+(r-l)/2;
}else {
return m;
}
}
return -1;
}
下一篇: 使用 Python 进行二进制查询的示例