package C2;
public class array {
public static void main(String[] args) {
//二分查找
int[] arr= {1,2,3,4,5,6,7,8,9};
int target=5;//目标元素
int left=0;//记录开始位置
int end=arr.length-1;//记录结束位置
int mid=(left+end)/2;//记录中间的位置
int index=-1;//记录目标位置
while(left<end) {
//判断中间
//的这个元素是不是要查找的元素
if(arr[mid]==target) {
index=mid;
break;
//中间这个元素不是要查的元素
}else {
//判断中间这个元素是不是比目标元素大
if(arr[mid]<target) {
left=mid+1;
//把结束位置调到中间位置前一个位置
}else if(arr[mid]>target){
//把开始位置调整到中间位置的后一个位置
end=mid-1;
}
//取出新的中间位置
mid=(end+left)/2;
}
}
System.out.println("target值的下标是:"+index);
}
}
03-24
1273
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-08
1万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-09
6689
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-25
1147
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-20
3108
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)