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<max)
{
mid=(min+max)>>1;
if(key>arr[mid])
min=mid+1;
else if(key==arr[mid])
return mid;
else
max= mid-1;
}
return -1;
}
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<max)
{
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,注意复习位运算符的知识。