class Demo4
{
public static void main(String[] args)
{
int[] arr=new int[]{12,24,25,28,76,96,101};
int index=halfSearch_2(arr,120);
/*
我想获取arr[index],也就是说获取key的值并打印
System.out.println(arr[index]+"的角标为:"+index);
但是当key的值没有和数组里的值匹配时,就获取不了arr[index]
这个怎么破?
*/
System.out.println("的角标为:"+index);
}
public static int halfSearch(int[] arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(min+max)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
{
min=mid+1;
}
else if(key<arr[mid])
{
max=mid-1;
}
if(min>max)
{
return -1;
}
mid=(min+max)/2;
}
return mid;
} |
|