/*
*二分搜索输入搜索值,返回搜索值的数组下标(搜索到的数组arr、数组的开头start、数组的末尾end、搜索到的值key )
*首先判断输入的start (开头)是否大于end,如果大于end,则返回-1。
*在以上大范围内,首先判断arr[mid] (开头值、末尾值和中间数组的值),与用key )检索到的值)的数组同样地返回mid )并结束
*如果上述不成立,则判断arr[mid] (中间数组的值)是否小于要查找的值,如果小于,则表示key )位于数组的右侧,并对mid附加新的开始值newstart,递归地将开始的值设定为newstart
*如果上述内容也不成立,则只剩下arr [ mid ]密钥。 “key”(找到的值)位于数组的左侧,将mid添加一个值,提供新的结束值newend,然后递归地将结束值更改为newend
*/publicinterfenchazhao (int [ ] arr,int start,int end,int key ) {
if (开始) {
//如果输入的数组的开头大于末尾,则直接结束,返回负1
返回- 1;
}else {
int mid=(结束-开始)/2;
//新中间值mid
if(ARR[mid]==key () () ) ) ) ) ) ) )。
//中值与查找值相同
{
返回mid;
}elseif(ARR[mid]
//中值小于查找值,查找值抛弃其右、左数组,中值变为新的起始值,并递归地返回中值mid直到查找与中值相等。
{
int newstart=mid;
returnerfenchazhao(ARR,newstart,end,key );
}else
//中值大于查找值,查找值在其左侧,舍弃数组的右侧,中值变为新的结束值,递归地返回中值mid,直到查找与中央相等。
{
int newend=mid;
returnerfenchazhao(ARR,start,newend,key );
}
}
}