二分法查找数组中的数

import java.util.Arrays;
class Demo34 
{
public static void main(String[] args) 
{
//二分法查找:前期条件,被查找的数组要是有序的
int[] arr= {2,34,56,78,98,100};
int key =89;
int index=halfSearch(arr,key);
System.out.println("index="+index);
}
public static int halfSearch(int[] arr,int key)
{
int min =0,max=arr.length-1,mid;
while(min {
mid=(min+max)>>1;
if(key>arr[mid])
min=mid+1;
else if(key==arr[mid])
return mid;
else 
max= mid-1;
}
return -1;
}

}

同样是定义二分法为一个函数,注意,其中使用到了>>1,意义是右移1位,相当于/2,注意复习位运算符的知识。

你可能感兴趣的:(二分法查找数组中的数)