数组的折半原理
必须是有序排列
折半公式:(min+max)/2
指针思想:
折半的索引和查找元素比较
元素>中间索引上的元素
小指针=中间+1
元素<中间索引上的元素
大指针=中间-1
小指针>大指针索引,结束
没找到-1的索引
元素==数组中间索引上的元素,结束
int index = binarySearch(arr,9);
public static int binarySearch(int [] arry, int key){
int min=0;
int max=arr.length-1;
int mid =0;
while(min<=max){
mind=(min+max)/2;
if(key>arr[mid]){
mid=mid+1;
}
else if(key<arr[mid]){
mid=mid-1;
}
else{
return mid;
}
}
}
return -1;