递归查找
public static int dgIndex(int [] arr,int min,int max,int value){
if(min<=max){
int mid = (min+max)/2;
if(value == arr[mid]){
return mid;
}else if(value>arr[mid]){
return dgIndex(arr, mid+1, max, value);
}else if(value<arr[mid]){
return dgIndex(arr, min, mid-1, value);
}
}
return -1;
}
循环查找
public static int getIndex(int [] arr,int value){
int min = 0;
int max = arr.length-1;
int mid = (min+max)/2;
while(value!=arr[mid]){
if(value>arr[mid]){
min = mid + 1 ;
}else if(value<arr[mid]){
max = mid - 1 ;
}
mid = (max+min)/2;
}
return mid;
}