从数组中间向两侧搜索
int fun(int a[],int n,int x)
{
int low = 0;
int height = n-1;
while(low <= high)
{
int mid = (low + high)/2;
if(x == a[mid])
{
return mid;
}
else if(x< a[mid])
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return -1;
}
如果数组无序,需要先排列为有序的
假设现在数组元素从小到大排列,那么根据n将数组从中间分为两部分,然后将x与中间的数比较,若小于,则在右边查找,大于就在左边,然后一直分下去就好了,直至查找失败或查找到指定元素