简单的二分查找法,只为今后的回顾。。。
//前提:被查找的数组必须有序
public static int binarySearch(int[] arr,int key){//key 为要查找的数,返回该数的下标
int left=0;//数组最左端下标
int right=arr.length-1;//数组最右端下标
int middle;//数值中位数的下标
if(key>arr[right]||key<arr[left]||left>right){
return -1;
}
while(left<=right){
middle=(left+right)/2;
if (key<arr[middle]){
right=middle-1;
}else if (key>arr[middle]){
left=middle+1;
}else {
return middle;
}
}
return -1; //如果数组中不存在该数
}