要求:查找数组应为有序数组,结果返回查找值得数组索引下标,若不存在返回-1。
public class Demo_Find {
public static void main(String[] args){
int[] a = {11, 22, 33, 44, 55, 66};
System.out.println(getIndex(a, 11));
System.out.println(getIndex(a, 55));
System.out.println(getIndex(a, 77));
}
public static int getIndex(int[] arr, int value){
int min = 0;
int max = arr.length-1;
int mid = (min + max)/2;
while(arr[mid] != value){
if(arr[mid] < value){
min = mid+1;
}else if(arr[mid] > value){
max = mid-1;
}
mid = (min + max)/2;
if(min > max){
return -1;
}
}
return mid;
}
}