独角兽企业重金招聘Python工程师标准>>>
package ;
//折半查找法(二分法)
public class halfSearch {
public static void main(String[] args){
int[] arr = {10,15,16,19,28,96,110,128,199};
int index = halfSaerch(arr,28);
System.out.println("index="+index);
}
public static int halfSaerch(int[] arr,int target){
int max = arr.length-1;
int min = 0;
int mid = (max+min)/2;
while(true){
if(target>arr[mid]){
min = mid+1;
}else if(target<arr[mid]){
max = mid-1;
}else{
return mid;
}
//重新计算中间值
mid = (max+min)/2;
//如果找不到
if(max<min){
return -1;
}
}
}
}