public static int right_bound(int[] arr,int target) {
int left = 0;
int right = arr.length-1;
while(left<=right) {
int mid = left + ((right-left)>>1);
if(arr[mid] == target) {
left = mid +1;
}
else if(arr[mid] < target) {
left = mid +1;
}
else if(arr[mid] > target) {
right = mid -1;
}
}
if((right<0)||(arr[right] != target)) {
return -1;
//当target比所有元素都小时,right的位置是-1,所以要进行判断。
}
return right;
}

本文介绍了如何使用二分查找算法在给定的整数数组中定位目标值。通过不断缩小搜索范围,当找到目标值或确定其不存在于数组中时返回相应索引。适用于已排序的数据结构中提高搜索效率。

被折叠的 条评论
为什么被折叠?



