//折半查找函数
int binary_search(code array[],int search)
{
int middle,front=0,rear=9;
while(front<=rear) //这是算法的关键,判断查找成功失败的条件,建议仔细理解,找个算法书上的图示看看
{
middle=(front+rear)/2;
if(search==array[middle].num)
return middle; //查找成功,返回middle即是要查数据在新数组中的位置
else if(search>array[middle].num)
front=middle+1; //暂时没有找到的情况
else
rear=middle-1;
}
if(front>rear) return -1; //查找失败返回-1
}
- //折半查找,***首先要保证查找的数组是有序的***
- public static int search(int arr[],int key)
- {
- int min=0,max=arr.length-1,mid=0;
- while(min<=max)
- {
- mid=min+max>>1;//除以2
- if(arr[mid]>key)
- {
- max=mid-1;
- }
- else if(arr[mid]<key)
- {
- min=mid+1;
- }
- else
- return mid;//返回要查找元素的下标
- }
- return min;//数组中查找不到
- }