二分搜索的前提为:必须为有序序列,可用快速排序法进行排序
class BinaryFind
{
/////必须是有序序列才能进行二分查找,可用快速排序进行排序
public void find(int leftIndex,int rightIndex,int val,int arr[])
{
///首先找到中间数
int midIndex=(rightIndex+leftIndex)/2;
int midVal=arr[midIndex];
if(rightIndex>=leftIndex){
///如果要找的数val比midVal大
if(midVal>val)
{
///在arr左边找,采用递归
find(leftIndex,midIndex-1,val,arr);
}
else if(midVal<val)
{
///在arr右边的数去找
find(midIndex+1,rightIndex,val,arr);
}
else if(midVal==val)
{
System.out.println("找到下标"+midIndex);
}
}
else
{
System.out.println("不能找到-->"+val);
}
}
}