//java二分查找法,返回索引,數(shù)字必須是有序排列
public static int binarySearch(int[] arr,int key){
//三個指針變量
int min=0;
int max=arr.length-1;
int mid=0;//中間指針先初始化為0
//循環(huán)折半
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;
}
二分查找法,大白話,就是把一個數(shù)組 從中間分成前半部和后半部,如果要查找的key大于中間的值,那么直接查找后半部,以此類推,如果要查找的key小于中間的值,那么直接查找前半部,以此類推,直到找到為止,找不到返回-1,找到返回索引下標,需要注意的是,二分查找法,必須是一個有序的數(shù)組,否則會返回-1,
比較過程是根據(jù)索引下標進行的,數(shù)組長度不可變。

圖片.png