注意:当***列表有序***时才可使用二分查找
public class binary_search {
public static void main(String[] args) {
int[] list = {11, 15, 18, 25, 29, 30, 35, 37, 39, 40, 45, 49, 50, 52, 53, 59};
System.out.println(binary_search(list, 52));
}
static int binary_search(int []list, int item){
int low=0;
int high=list.length-1;
int count=0;
while(low<=high){
System.out.println("第"+(count+1)+"次");
System.out.println("low="+list[low]+",对应位置"+low+",high="+list[high]+",对应位置"+high);
int mid=(low+high)/2;
System.out.println("中值mid="+list[mid]+",对应位置"+mid);
int guess=list[mid];
System.out.println("猜的数字guess="+guess);
System.out.println("=================");
if(guess==item){
return mid;
}
if(guess>item){
high=mid-1;
count++;
}
else{
low=mid+1;
count++;
}
}
return 0;
}
}
结果: