前提是:有序的数组
public class Test03 {
public static int find(int[] arr,int n){
int max = arr.length - 1;
int min = 0;
int mid = (max + min)/2;
while(min <= max ){
if(arr[mid] == n){
return mid;
}else if(arr[mid] > n){
max = mid - 1;
}else if(arr[mid] < n){
min = mid + 1;
}
mid = (max + min)/2;
}
return -1;
}
public static void main(String[] args){
int[] ds = {1,2,4,6,9,13,16};
System.out.println(find(ds,16));
System.out.println(find(ds,1));
System.out.println(find(ds,0));
System.out.println(find(ds,20));
}
}
网友评论