二分法查找的前提,数组里面的数据一定要有序。
public static int search_2(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid=(min+max)>>1;
while(arr[mid]!=key)
{
if(key>arr[mid])
{
min=mid+1;
}else if(key<arr[mid])
max = mid - 1;
if(max<min)
return -1;
mid=(min+max)>>1;
}
return mid;
} |
|