public class zhebansearch{
public static void main(String[] args){
int [] arr= {1,2,3,5,7,11,18};
int y=halfsearch_1(arr,15);//折半查找1
System.out.println("halfsearch_1y = " +y);
}
//折半查找必须是有序数组
//折半查找方法1 (采用中间值与要查找的值进行比较)
public static int halfsearch_1(int[] arr,int key){//key为要查找的元素
int min=0;//最小值
int max=arr.length-1;//最大值
int 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;//查找不到元素返回-1;
}
}
return mid;
}
}
我要查找15在数组中的位置,代码如上;返回值应该是-1啊!
怎么会这样
|
|