public class DemoHalfFind {
public static void main(String[] args) {
// TODO Auto-generated method stub
double arr[]={1,2,3,4,5,10,100,101};
double target=100;
int targetindex=HalfFind.find(arr,0,arr.length-1,target);
if (targetindex==-1)
{
System.out.println("找不到"+target);
}
else
{
System.out.println("找到目标,下标为"+targetindex);
}
}
}
class HalfFind//二分法查找类
{
public static int find(double arr[],int beginindex,int endindex,double target)//查找方法
{
int middleindex=(beginindex+endindex)/2;
double middlevalue=arr[middleindex];
int targetindex=-1;
if (beginindex<=endindex)//递归条件
{
if (middlevalue>target)
{
targetindex=find(arr,beginindex,middleindex-1,target);
}
else if (middlevalue==target)
{
return middleindex;
}
else
{
targetindex=find(arr,middleindex+1,endindex,target);
}
}
return targetindex;
}
}