二分查找的前提:数组是有序的。
而数组排序在java中可以方便的使用API:
Arrays.sort(arr); 它默认是升序排序。
*二分查找的核心思想也就是不断的缩小数据的存在范围。
代码如下
public int findbyTow(int[] arr, int role){
int left = 0;
int right = arr.length-1;
int mid = (right - left)/2 - left;//可以防止数据越界的错误
while (left <= right){
if (arr[mid] < role){
left = mid + 1;
}
else if (arr[mid] > role){
right = mid - 1;
}
else{
return mid;//返回他的下标。
}
}
return -1; //未找到,就返回-1
}