//要求:数组二分查找法
class ArrayDemo7
{
public static void main(String[] args)
{
int[] arr={13,15,19,28,33,45,66,88,100};
int index=halfSearch(arr,106);
System.out.println("index="+index);
}
public static int halfSearch(int[] arr,int key)
{
int min,max,mid;//定义
min=0;
max=arr.length-1;
mid=(min+max)/2;
while (arr[mid]!=key)
{
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
if(max<min)
return -1;
else
mid=(min+max)/2;//如果找到这个数不存在,但是仍然保持max>min,继续折半
//如果没有这个函数,则出现在一直执行以上循环
}
return mid;
}
}
二分查找
最新推荐文章于 2024-11-13 16:12:06 发布