//主方法
import domain.binartSearchForIndex;
public class MyBinarySearchDemo {
public static void main(String[] args) {
//定义静态整数数组
int[] arr = {11,22,33,44,55};
//创建要查找的数字
int number = 33;
//类名.方法名 传入数组和整数参数,并创建变量x接收返回回来的整数
int x = binartSearchForIndex.binartSearchForIndex(arr,number);
//打印该数字在数组中的位置
System.out.println(x);
}
}
//二分查找方法体
public class binartSearchForIndex {
//传入一个数组参数,和要查找的值
public static int binartSearchForIndex(int[] arr, int number) {
//定义查找范围
int min = 0;
int max = arr.length - 1;
//while判断
while (min <= max) {
//计算出中间的位置
int mid = (min + max) / 2;
//mid指向的元素 > number
if (arr[mid] > number) {
max = mid - 1;
} else if (arr[mid] < number) {
//mid指向的元素 < number
//表示要查找的元素在右边
min = mid + 1;
} else {
//mid指向的元素 = number
return mid;
}
}
//如果min大于了max 就表示元素不存在,返回 -1
return -1;
}
}