class search
{
public static void main(String[] args) {
int[] arr = {1,10,20,28,45,90,100,200};
System.out.println(search(arr, 1));
}
static int search(int[] arr, int key) {
int max,min,mid;
max = arr.length - 1;
min = 0;
mid = (max + min) / 2;
while (arr[mid] != key) {
if (arr[mid] > key) {
max = mid - 1;
} else if (arr[mid] < key) {
min = mid + 1;
} else {
return mid;
}
mid = (max + min) / 2;
if (max < min) {
return -1;
// return -min-1;
// 折半查找,没存在值,返回插入点,负数,是区别查找,-1 是因为有0的情况存在。
}
}
return mid;
}
}