二分法查找
package search;
import java.util.Arrays;
public class BinarySeach {
public static void main(String[] args) {
int[] a = {1,22,33,45,69,70,95,100};
Arrays.sort(a);
int index = binarySearch(a, 95);
System.out.println(index) ;
}
public static int binarySearch(int[] a , int key){
int low = 0;
int high = a.length - 1;
while(low <= high){
System.out.println(low + "------" + high); //循环的次数
int mid = (low + high) / 2; //中间索引
int midVal = a[mid]; //中间元素 猜测的值
if(midVal > key){ //猜大了
high = mid -1;
}else if(midVal < key){ //猜小了
low = mid +1;
}else{
return mid; //猜到了
}
}
return -1;
}
}