public class Test8 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8}; //有序数组
int target = 3; //目标值
int index = -1; //查找到的目标的下标
int low = 0; //左边界的下标
int high = arr.length-1; //右边界的下标
while(low <= high) {
int mid = (low + high)/2; //中间下标
if(arr[mid] == target) { //判断该下标所对的数组元素是否与目标元素相等,相等直接结束循环
index = mid;
break;
}else if(arr[mid] < target) { //该下标所对的数组元素小于目标元素,证明目标元素在区间的右半部分
low = mid + 1; //将区间的左边界修改为中间下标的右一个元素
}else if(arr[mid] > target) {
high = mid - 1; //该下标所对的数组元素大于目标元素,证明目标元素在区间的左半部分
}
}
System.out.println(index); //将区间的右边界修改为中间下标的左一个元素
}
}
二分查找法
最新推荐文章于 2025-05-11 14:15:46 发布