自己编写一个折半查找
#include <stdio.h>
int search(int a[],int m,int len)
{
int left=0;
int right=len-1;
int mid;
while(left<=right)
{
mid=(right+left)/2; //求中间的数的下标值
if(a[mid]<m)
{
left = mid+1; //如果中间值小于给定的则该数在中值得右边
}
else if(a[mid]>m)
{
right = mid-1; //如果中间值大于给定的则该数在中值得左边
}
else
return mid;
}
return -1; //如果该值在范围内则返回-1
}
int main()
{
int a[]={1,3,5,7,9,11};
int p=search(a,7,sizeof(a)/sizeof(a[0]));
printf("%d",p);
return 0;
}