public static int dichotomySearch(int[] array,int a){
System.out.println("正在执行方法");
int start=0;
int length=array.length-1;
int index;
while (start<=length){
System.out.println("start="+start);
index=(start+length)/2;//中间位置
System.out.println("index="+index);
System.out.println("length="+length);
if(array[index]==a){
return index+1;
}else if(array[index]<a){
//向右查找
start=index+1;
}else {
//向左查找
length=index-1;
}
}
return -1;
}
public static void main(String[] args) {
int[] arrays={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,26,27,28,29,30,31,32,33,34,35,36,37,38,39,39,40};
int input=39;
System.out.println("位置等于"+dichotomySearch(arrays,input));
/**
* 正在执行方法
* start=0
* pot=19
* length=39
* start=20
* pot=29
* length=39
* start=30
* pot=34
* length=39
* start=35
* pot=37
* length=39
* start=38
* pot=38
* length=39
* 位置等于39
*/
}