public static void main(String[] args) {
//目标数组
int[] arr = new int[] {1,2,3,4,5,6,7,8,9};
//目标元素
int target=9;
//目标元素的索引
int index = -1;
//记录开始位置
int begin=0;
//记录结束位置
int end = arr.length;
//记录中间位置
int mid = (begin+end)/2;
//循环查找
while(true) {
//如果起始位置和结束位置重合,说明目标元素在目标数组中不存在
if(begin>=end) {
throw new RuntimeCryptoException();
}
//判断中间这个元素是不是要查找的元素
if(arr[mid]==target) {
index=mid;
//如果是,直接退出
break;
}else {
//判断中间元素比目标元素大
if(arr[mid]>target) {
//把结束位置调整到中间位置的前一个位置
end=mid-1;
//判断中间元素比目标元素小
}else {
//把起始位置调整到中间位置的后一个位置
begin=mid+1;
}
//取出新的中间位置
mid=(begin+end)/2;
}
}
System.out.println(index);
}