注意:由于二分查找法的原理,首先得保证要查找的数组是一个有序数列,所以在查找之前必须做一个排序的工作。
//二分查找法
class Find
{
public void find(int liftIndex,int reghtIndex,int val,int arr[])
{
/*
* liftIndex 最左边的下标
* reghtIndex 最右边的下标
* val 要查找的数
* midIndex 中间数的下标
*/
int midIndex=(liftIndex+reghtIndex)/2;
if(liftIndex<=reghtIndex)
{
//比较
//如果要查找的数比中间的数大则接下来在右边找
if(val>arr[midIndex])
{
find(midIndex+1,reghtIndex,val,arr);
}
//如果要查找的数比中间的数小则接下来在左边找
else if(val<arr[midIndex])
{
find(liftIndex,midIndex-1,val,arr);
}
//如果刚好相等,则找到了
else if(val==arr[midIndex])
{
System.out.println("找到"+val+"了,是第"+(midIndex+1)+"个数字");
}
}
}
}
