//java二分查找法,返回索引,数字必须是有序排列
public static int binarySearch(int[] arr,int key){
//三个指针变量
int min=0;
int max=arr.length-1;
int mid=0;//中间指针先初始化为0
//循环折半
while (min<=max) {
//公式,计算中间索引
mid=(min+max)/2;
if(key>arr[mid]){
min=mid+1;
}else if(key<arr[mid]){
max=mid-1;
}else{
//找到元素,返回索引
return mid;
}
}
return -1;
}
二分查找法,大白话,就是把一个数组 从中间分成前半部和后半部,如果要查找的key大于中间的值,那么直接查找后半部,以此类推,如果要查找的key小于中间的值,那么直接查找前半部,以此类推,直到找到为止,找不到返回-1,找到返回索引下标,需要注意的是,二分查找法,必须是一个有序的数组,否则会返回-1,
比较过程是根据索引下标进行的,数组长度不可变。