class Demo{ public static void main(String[] args){
int[] arr ={11,22,33,44,55,66}; //二分查找的前提是,数组必须是有序的。
int index = getIndex(arr,33); //定义一个整数,接收返回来的值
System.out.println(index); //打印返回来的值
}
public static int getIndex(int[] arr,int vule){
int min = 0; //定义最小值
int max = arr.length - 1; //定义最大值
int mid = (min + max) / 2; //定义中间值
while(arr[mid] != vule){ //判断传入的值是否等于中间值,如果不等于,往下执行
if(arr[mid] > vule){ //判断传入的值是否小于中间值
max = mid -1; //如果小于,则最大值为中间值的前面一位
}else if(arr[mid] < vule){ //如果大于中间值
min = mid +1; //最小值则改为中间值的后面一位
}
mid = (min + max) / 2;
if(min > max){ //如果最小值大于最大值
return -1; //返回-1
}
}
return mid; //如果传入的值等于中间值返回中间值
}
}
i'msosorryican'tstaywithyouTodayPleaselookafteryourselfreplaceofmimisyousomuch!
|
|