import java.util.*;//准备一个排序好的数组,一个key值,一个Max值,一个Min值,一个mid//最大值索引大于等于中间值索引时循环//如果key值小于中间值索引,mid-1,如果key大于mid,mid+1,如果key值等于中间值索引,则返回中间值索引public class BSerch{public static int BSerchFun(int[] arr,int key) {int maxIndex = arr.length-1; //最大数的索引int minIndex = 0; //最大数的索引int midIndex; //中间值索引while (maxIndex>=minIndex) {//如果最大值大于最小值,就除以2 midIndex = (maxIndex+minIndex)/2;//如果当前中位数大于key,max相对于mid索引向左移动一位if(arr[midIndex]>key) {maxIndex = midIndex - 1;}//如果当前中位数小于key,min索引向右移动一位else if(arr[midIndex]<key) {minIndex = midIndex + 1;}//如果当前中位数等于key,循环结束else if(arr[midIndex] == key ) {return midIndex;};}return -1;}public static void main(String[] args) {BSerch b = new BSerch();int [] arr = {1,3,5,7,9,11,13};int BSerchRes = b.BSerchFun(arr,9);System.out.println("BSerchRes====:");System.out.println(BSerchRes);}};