public class binarySearch {
public static void main(String[] args) {
int[] nums={10,5,4,20,53,42};
//需要查找的数据
int num=20;
//三个关键变量:
//最小范围下标
int minIndex=0;
//最大范围下标
int maxIndex=nums.length-1;;
//中间数据下标
int centerIndex=(maxIndex+minIndex)/2;
while(true) {
if(nums[centerIndex]>num) {
//中间值较大
maxIndex=centerIndex-1;
}else if(nums[centerIndex]<num) {
//中间值较小
minIndex=centerIndex+1;
}else {
//找到中间值下标 数据位置为:centerIndex
break;
}
if(minIndex>maxIndex) {
//没有找到数据
centerIndex=-1;
}
//当数据发生改变,需要更新中间下标
centerIndex=(maxIndex+minIndex)/2;
}
System.out.println("数据目标下标位置为"+centerIndex);
}
}
面向对象-二分查找
最新推荐文章于 2022-05-25 11:05:10 发布